Pagini recente » Cod sursa (job #1188241) | Cod sursa (job #1689392) | Cod sursa (job #1218038) | Cod sursa (job #2613131) | Cod sursa (job #555900)
Cod sursa(job #555900)
program cuplaj;
type nod=^graf;
graf=record
inf:longint;
urm:nod;
end;
var s,fl,c1:array[0..10000]of longint;
v:array[0..1000]of nod;p:nod;
i,j,x,y,n,m,k:longint; f,g:text;
procedure adauga(x,y:longint);
begin
new(p);
p^.inf:=y;
p^.urm:=v[x];
v[x]:=p;
end;
function cauta(n:longint):boolean;
var k:nod;
begin
if fl[n]<>0 then
cauta:=false
else begin
fl[n]:=1;
new(k);
k:=v[n];
while k<>nil do begin
if c1[k^.inf]=0 then begin
c1[k^.inf]:=n;
s[n]:=k^.inf;
cauta:=true;
break;
end;
k:=k^.urm;
end;
k:=v[n];
while k<>nil do begin
if c1[k^.inf]<>0 then begin
c1[k^.inf]:=n;
s[n]:=k^.inf;
cauta:=true;
break;
end;
k:=k^.urm;
end;
cauta:=false;
end;
end;
procedure solve;
var nr:integer;da:boolean;
begin
da:=true;
while da do begin
da:=false;
for i:=1 to n do fl[i]:=0;
for i:=1 to n do
if s[i]=0 then
if cauta(i) then begin
inc(nr);
da:=true;
end;
end;
writeln(g,nr);
for i:=1 to n do
if s[i]<>0 then writeln(g,i,' ',s[i]);
end;
begin
assign(f,'cuplaj.in');reset(f);
assign(g,'cuplaj.out');rewrite(g);
readln(f,n,m,k);
for i:=0 to k-1 do begin
readln(f,x,y);
adauga(x,y);
end;
solve;
close(f);close(g);
end.