var
s, key: string;
index: array of integer;
i, j, T: integer;
curr: integer;
begin
writeln('Введите строку');
readln(s);
writeln('Введите ключ из цифр');
readln(key);
SetLength(index,length(s));
{ индексная сортировка ключа }
for i := 1 to length(key) do index[i] := i;
for i := 1 to length(key) do
for j := length(key) downto i + 1 do
begin
if key[index[j - 1]] > key[index[j]] then
begin
T := index[j - 1]; index[j - 1] := index[j]; index[j] := T;
end;
end;
{
а теперь в соответствии с элементами массива Index
просто идём по строке и печатаем нужные символы
(с интервалами, равными длине ключа), пока строка
не закончится. Закончилась - переходим к следующему
элементу Index-а
}
for i := 1 to length(key) do
begin
curr := index[i];
while curr <= length(s) do
begin
write(s[curr]);
inc(curr, length(key));
end;
end;
writeln;
end.
ICAgIHZhcgogICAgICBzLCBrZXk6IHN0cmluZzsKICAgICAgaW5kZXg6IGFycmF5IG9mIGludGVnZXI7CiAgICAgIGksIGosIFQ6IGludGVnZXI7CiAgICAgCiAgICAgIGN1cnI6IGludGVnZXI7CiAgICBiZWdpbgogICAgd3JpdGVsbign0JLQstC10LTQuNGC0LUg0YHRgtGA0L7QutGDJyk7CiAgICByZWFkbG4ocyk7CiAgICB3cml0ZWxuKCfQktCy0LXQtNC40YLQtSDQutC70Y7RhyDQuNC3INGG0LjRhNGAJyk7CiAgICByZWFkbG4oa2V5KTsKICAgIFNldExlbmd0aChpbmRleCxsZW5ndGgocykpOwogICAKICAgICAgeyDQuNC90LTQtdC60YHQvdCw0Y8g0YHQvtGA0YLQuNGA0L7QstC60LAg0LrQu9GO0YfQsCB9CiAgICAgIGZvciBpIDo9IDEgdG8gbGVuZ3RoKGtleSkgZG8gaW5kZXhbaV0gOj0gaTsKICAgICAgZm9yIGkgOj0gMSB0byBsZW5ndGgoa2V5KSBkbwogICAgICAgIGZvciBqIDo9IGxlbmd0aChrZXkpIGRvd250byBpICsgMSBkbwogICAgICAgIGJlZ2luCiAgICAgICAgICBpZiBrZXlbaW5kZXhbaiAtIDFdXSA+IGtleVtpbmRleFtqXV0gdGhlbgogICAgICAgICAgYmVnaW4KICAgICAgICAgICAgVCA6PSBpbmRleFtqIC0gMV07IGluZGV4W2ogLSAxXSA6PSBpbmRleFtqXTsgaW5kZXhbal0gOj0gVDsKICAgICAgICAgIGVuZDsKICAgICAgICBlbmQ7CiAgICAgIHsKICAgICAgICDQsCDRgtC10L/QtdGA0Ywg0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBINGN0LvQtdC80LXQvdGC0LDQvNC4INC80LDRgdGB0LjQstCwIEluZGV4CiAgICAgICAg0L/RgNC+0YHRgtC+INC40LTRkdC8INC/0L4g0YHRgtGA0L7QutC1INC4INC/0LXRh9Cw0YLQsNC10Lwg0L3Rg9C20L3Ri9C1INGB0LjQvNCy0L7Qu9GLCiAgICAgICAgKNGBINC40L3RgtC10YDQstCw0LvQsNC80LgsINGA0LDQstC90YvQvNC4INC00LvQuNC90LUg0LrQu9GO0YfQsCksINC/0L7QutCwINGB0YLRgNC+0LrQsAogICAgICAgINC90LUg0LfQsNC60L7QvdGH0LjRgtGB0Y8uINCX0LDQutC+0L3Rh9C40LvQsNGB0YwgLSDQv9C10YDQtdGF0L7QtNC40Lwg0Log0YHQu9C10LTRg9GO0YnQtdC80YMKICAgICAgICDRjdC70LXQvNC10L3RgtGDIEluZGV4LdCwCiAgICAgIH0KICAgICAgZm9yIGkgOj0gMSB0byBsZW5ndGgoa2V5KSBkbwogICAgICBiZWdpbgogICAgICAgIGN1cnIgOj0gaW5kZXhbaV07CiAgICAgICAgd2hpbGUgY3VyciA8PSBsZW5ndGgocykgZG8KICAgICAgICBiZWdpbgogICAgICAgICAgd3JpdGUoc1tjdXJyXSk7CiAgICAgICAgICBpbmMoY3VyciwgbGVuZ3RoKGtleSkpOwogICAgICAgIGVuZDsKICAgICAgZW5kOwogICAgICB3cml0ZWxuOwogICAgZW5kLg==