Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fi='PTIT123C.inp';
- fo='PTIT123C.out';
- var test, i, j, n, k1, k2, tmp, count: longint;
- a, id: array [1..1000006] of longint;
- kq: array [1..100] of longint;
- procedure Sort(l, r: longint);
- var i, j, m, tmp: longint;
- begin
- if l>=r then exit;
- i:=l; j:=r; m:=(l+r) div 2;
- while i<=j do
- begin
- while (a[i]<a[m]) or ((a[i]=a[m]) and (id[i]<id[m])) do inc(i);
- while (a[j]>a[m]) or ((a[j]=a[m]) and (id[j]>id[m])) do dec(j);
- if i<=j then
- begin
- tmp:=a[i]; a[i]:=a[j]; a[j]:=tmp;
- tmp:=id[i]; id[i]:=id[j]; id[j]:=tmp;
- inc(i); dec(j);
- end;
- end;
- Sort(i, r); Sort(l, j);
- end;
- begin
- assign(input, fi); reset(input);
- assign(output, fo); rewrite(output);
- test:=0;
- while true do
- begin
- readln(n, k1, k2);
- if n=0 then break;
- inc(test);
- for i:=1 to n do
- begin
- read(a[i]);
- id[i]:=i;
- end;
- readln;
- writeln('Case ', test);
- Sort(1, n);
- count:=0;
- for i:=1 to k1 do
- begin
- inc(count);
- kq[count]:=id[i];
- end;
- for i:=1 to count-1 do
- for j:=i+1 to count do
- if kq[i]>kq[j] then
- begin
- tmp:=kq[i]; kq[i]:=kq[j]; kq[j]:=tmp;
- end;
- for i:=1 to count do write(kq[i],' '); writeln;
- count:=0;
- for i:=n-k2+1 to n do
- begin
- inc(count);
- kq[count]:=id[i];
- end;
- for i:=1 to count-1 do
- for j:=i+1 to count do
- if kq[i]<kq[j] then
- begin
- tmp:=kq[i]; kq[i]:=kq[j]; kq[j]:=tmp;
- end;
- for i:=1 to count do write(kq[i],' '); writeln;
- end;
- close(input); close(output);
- end.
Advertisement
Add Comment
Please, Sign In to add comment