fork download
  1. program sairsodo;
  2. const MAXN=100000;
  3. type elenco = array[1..MaXN] of qword;
  4.  
  5. Procedure scambia (var a,b: qword);
  6. var x:qword;
  7. begin
  8. x:=a;
  9. a:=b;
  10. b:=x;
  11. end;
  12. Procedure ordinamento (estremoi,estremos: qword; var v : elenco; ordinato:boolean);
  13. var inf, sup, medio:qword;
  14. pivot :qword;
  15. begin
  16. inf:=estremoi;
  17. sup:=estremos;
  18. medio:= (estremoi+estremos) div 2;
  19. pivot:=v[medio];
  20. repeat
  21. if (ordinato) then
  22. begin
  23. while (v[inf]<pivot) do inf:=inf+1;
  24. while (v[sup]>pivot) do sup:=sup-1;
  25. end;
  26. if inf<=sup then
  27. begin
  28. scambia(v[inf],v[sup]);
  29. inf:=inf+1;
  30. sup:=sup-1;
  31. end;
  32. until inf>sup;
  33. if (estremoi<sup) then ordinamento(estremoi,sup,v,ordinato);
  34. if (inf<estremos) then ordinamento(inf,estremos,v,ordinato);
  35. end;
  36.  
  37. begin
  38. readln
  39. end.
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Standard output is empty