Pagini recente » Cod sursa (job #1375770) | Cod sursa (job #1669915) | Cod sursa (job #815033) | Cod sursa (job #1178577) | Cod sursa (job #771262)
Cod sursa(job #771262)
Program congr;
type tip=record
v,p:longint;
end;
var a,b:array [1..300000] of tip;
st,sc:int64;
aux:tip;
s:string;
b1,b2:array [1..1 shl 17] of char;
i,n,p1,p2,lev:longint;
fi,fo:text;
function citire:longint;
var x:longint;
begin
x:=0;
while s[lev]<>' ' do begin
x:=x*10+ord(s[lev])-48; inc(lev);
if lev=length(s) then begin read(fi,s); lev:=1; end;
end;
citire:=x; inc(lev);
end;
begin
assign(fi,'congr.in');
assign(fo,'congr.out');
settextbuf(fi,b1); settextbuf(fo,b2);
reset(fi); rewrite(fo); readln(fi,n); read(fi,s); s:=s+' '; lev:=1;
for i:=1 to n do begin a[i].v:=citire; a[i].p:=i; sc:=sc+a[i].v; end;
for i:=n+1 to 2*n-1 do begin b[i-n].v:=citire; b[i-n].p:=i; end;
while sc mod n<>0 do begin
p1:=random(n)+1;
p2:=random(n-1)+1;
sc:=sc-a[p1].v+b[p2].v;
aux:=a[p1]; a[p1]:=b[p2]; b[p2]:=aux;
end;
for i:=1 to n do write(fo,a[i].p,' ');
close(fo);
end.