giabinh

PTIT123C_ChungKhoan

Jun 6th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. const fi='PTIT123C.inp';
  2. fo='PTIT123C.out';
  3.  
  4. var test, i, j, n, k1, k2, tmp, count: longint;
  5. a, id: array [1..1000006] of longint;
  6. kq: array [1..100] of longint;
  7.  
  8. procedure Sort(l, r: longint);
  9. var i, j, m, tmp: longint;
  10. begin
  11. if l>=r then exit;
  12. i:=l; j:=r; m:=(l+r) div 2;
  13. while i<=j do
  14. begin
  15. while (a[i]<a[m]) or ((a[i]=a[m]) and (id[i]<id[m])) do inc(i);
  16. while (a[j]>a[m]) or ((a[j]=a[m]) and (id[j]>id[m])) do dec(j);
  17. if i<=j then
  18. begin
  19. tmp:=a[i]; a[i]:=a[j]; a[j]:=tmp;
  20. tmp:=id[i]; id[i]:=id[j]; id[j]:=tmp;
  21. inc(i); dec(j);
  22. end;
  23. end;
  24. Sort(i, r); Sort(l, j);
  25. end;
  26.  
  27. begin
  28. assign(input, fi); reset(input);
  29. assign(output, fo); rewrite(output);
  30.  
  31. test:=0;
  32. while true do
  33. begin
  34. readln(n, k1, k2);
  35. if n=0 then break;
  36. inc(test);
  37. for i:=1 to n do
  38. begin
  39. read(a[i]);
  40. id[i]:=i;
  41. end;
  42. readln;
  43.  
  44. writeln('Case ', test);
  45.  
  46. Sort(1, n);
  47.  
  48. count:=0;
  49. for i:=1 to k1 do
  50. begin
  51. inc(count);
  52. kq[count]:=id[i];
  53. end;
  54. for i:=1 to count-1 do
  55. for j:=i+1 to count do
  56. if kq[i]>kq[j] then
  57. begin
  58. tmp:=kq[i]; kq[i]:=kq[j]; kq[j]:=tmp;
  59. end;
  60. for i:=1 to count do write(kq[i],' '); writeln;
  61.  
  62. count:=0;
  63. for i:=n-k2+1 to n do
  64. begin
  65. inc(count);
  66. kq[count]:=id[i];
  67. end;
  68. for i:=1 to count-1 do
  69. for j:=i+1 to count do
  70. if kq[i]<kq[j] then
  71. begin
  72. tmp:=kq[i]; kq[i]:=kq[j]; kq[j]:=tmp;
  73. end;
  74. for i:=1 to count do write(kq[i],' '); writeln;
  75. end;
  76.  
  77. close(input); close(output);
  78. end.
Advertisement
Add Comment
Please, Sign In to add comment