fork download
  1. var
  2. s, key: string;
  3. index: array of integer;
  4. i, j, T: integer;
  5.  
  6. curr: integer;
  7. begin
  8. writeln('Введите строку');
  9. readln(s);
  10. writeln('Введите ключ из цифр');
  11. readln(key);
  12. SetLength(index,length(s));
  13.  
  14. { индексная сортировка ключа }
  15. for i := 1 to length(key) do index[i] := i;
  16. for i := 1 to length(key) do
  17. for j := length(key) downto i + 1 do
  18. begin
  19. if key[index[j - 1]] > key[index[j]] then
  20. begin
  21. T := index[j - 1]; index[j - 1] := index[j]; index[j] := T;
  22. end;
  23. end;
  24. {
  25.   а теперь в соответствии с элементами массива Index
  26.   просто идём по строке и печатаем нужные символы
  27.   (с интервалами, равными длине ключа), пока строка
  28.   не закончится. Закончилась - переходим к следующему
  29.   элементу Index-а
  30.   }
  31. for i := 1 to length(key) do
  32. begin
  33. curr := index[i];
  34. while curr <= length(s) do
  35. begin
  36. write(s[curr]);
  37. inc(curr, length(key));
  38. end;
  39. end;
  40. writeln;
  41. end.
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Введите строку
Введите ключ из цифр