fork download
  1. Const
  2. Nmaks = 3000000000000;
  3. Type
  4. pair = record
  5. bil : int64;
  6. indeks : longint;
  7. end;
  8.  
  9. Var
  10. data : array[0..100010] of pair;
  11. jumdata,i : longint;
  12.  
  13. function cek(object1,object2 : pair) : boolean;
  14. Begin
  15. if object1.bil = object2.bil then
  16. cek := object1.indeks < object2.indeks
  17. else cek := object1.bil < object2.bil;
  18. end;
  19.  
  20. procedure swap(var object1,object2 : pair);
  21. Var
  22. temp : pair;
  23. Begin
  24. temp := object1;
  25. object1 := object2;
  26. object2 := temp;
  27. end;
  28.  
  29. procedure qsbil(left,right : longint);
  30. Var
  31. ki,ka : longint;
  32. mid : pair;
  33. Begin
  34. ki := left; ka := right;
  35. mid := data[(left+right) div 2];
  36. while ki <= ka do
  37. begin
  38. while cek(data[ki],mid) do inc(ki);
  39. while cek(mid,data[ka]) do dec(ka);
  40.  
  41. if ki <= ka then
  42. Begin
  43. swap(data[ki],data[ka]);
  44. inc(ki); dec(ka);
  45. end;
  46. end;
  47.  
  48. if left < ka then qsbil(left,ka);
  49. if ki < right then qsbil(ki,right);
  50. end;
  51.  
  52. procedure qsidx(left,right : longint);
  53. Var
  54. ki,ka,mid : longint;
  55. Begin
  56. ki := left; ka := right;
  57. mid := data[(left+right) div 2].indeks;
  58. while ki <= ka do
  59. Begin
  60. while data[ki].indeks < mid do inc(ki);
  61. while data[ka].indeks > mid do dec(ka);
  62.  
  63. if ki <= ka then
  64. Begin
  65. swap(data[ki],data[ka]);
  66. inc(ki); dec(ka);
  67. end;
  68. end;
  69.  
  70. if left < ka then qsidx(left,ka);
  71. if ki < right then qsidx(ki,right);
  72. end;
  73.  
  74. Begin
  75. readln(jumdata);
  76. for i := 1 to jumdata do
  77. Begin
  78. readln(data[i].bil);
  79. data[i].indeks := i;
  80. end;
  81.  
  82. qsbil(1,jumdata);
  83.  
  84. for i := 1 to jumdata do
  85. if data[i].bil = data[i-1].bil then data[i].bil := Nmaks;
  86.  
  87. qsidx(1,jumdata);
  88.  
  89. for i := 1 to jumdata do
  90. if data[i].bil <> Nmaks then writeln(data[i].bil);
  91. end.
  92.  
Success #stdin #stdout 0s 1836KB
stdin
Standard input is empty
stdout
Standard output is empty