Pagini recente » Cod sursa (job #2263223) | Cod sursa (job #1187490) | Cod sursa (job #1050812) | Cod sursa (job #2006553) | Cod sursa (job #351448)
Cod sursa(job #351448)
type ref=^nod;
nod=record
nr:byte;
adr:ref;
end;
var v:array[1..100] of ref;
u:ref;
a,b:array[1..100] of byte;
n,m,i,j:longint;
f,g:text;
begin
assign(f,'harta.in');
assign(g,'harta.out');
reset(f);rewrite(g);
readln(f,n);
for i:=1 to n do
begin
read(f,a[i],b[i]);
inc(m,a[i]);
end;
writeln(g,m);
for i:=1 to n do
begin
for j:=1 to n do
v[j]:=nil;
for j:=1 to n do
if (b[j]>0) and (i<>j) then
if v[b[j]]=nil then
begin
new(v[b[j]]);
v[b[j]]^.nr:=j;
v[b[j]]^.adr:=nil;
end
else
begin
new(u);
u^.nr:=j;
u^.adr:=v[b[j]];
v[b[j]]:=u;
end;
for j:=n downto 1 do
begin
u:=v[j];
while u<>nil do
begin
if a[i]=0 then
break;
writeln(g,i,' ',u^.nr);
dec(a[i]);
dec(b[u^.nr]);
u:=u^.adr;
end;
if a[i]=0 then
break;
end;
end;
close(f);close(g);
end.