fork download
  1. var
  2. s:string;
  3. cl,cr:integer;
  4.  
  5. procedure right(l, r : integer);
  6. forward;
  7.  
  8. procedure swap(l, r : integer);
  9. var
  10. c : char;
  11. begin
  12. if (l>=1) and (r<=length(s)) then
  13. begin
  14. c:=s[l];
  15. s[l]:=s[r];
  16. s[r]:=c;
  17. end;
  18. end;
  19.  
  20. procedure left(l, r : integer);
  21. begin
  22. inc(cl);
  23. swap(l,r);
  24. if (r<length(s)) then
  25. right(l,r+1);
  26. end;
  27.  
  28. procedure right(l, r : integer);
  29. begin
  30. inc(cr);
  31. swap(l,r);
  32. if (l>1) then
  33. left(l-1,r);
  34. end;
  35.  
  36. begin
  37. s:='gogetgold';
  38. left(5,5);
  39. writeln(s);
  40. writeln(cl,',',cr);
  41. end.
Success #stdin #stdout 0s 9128KB
stdin
Standard input is empty
stdout
tdlogegog
5,4