Pagini recente » Cod sursa (job #614286) | Cod sursa (job #1974110) | Cod sursa (job #578654) | Cod sursa (job #2157000) | Cod sursa (job #557901)
Cod sursa(job #557901)
program cuplaj;
type nod=^graf;
graf=record
inf:longint;
urm:nod;
end;
var a:array[0..10000]of nod;q:nod;
v:array[0..10000]of boolean;
l,r:array[0..10000]of longint;
f,g:text;n,i,m,e,ok,nr:longint;
procedure citire;
var x,y:longint;
begin
readln(f,n,m,e);
for i:=1 to e do begin
readln(f,x,y);
new(q);
q^.inf:=y;
q^.urm:=a[x];
a[x]:=q;
end;
end;
function cauta(x:longint):boolean;
var q:nod;
begin
cauta:=false;
if v[x] then cauta:=false
else begin
v[x]:=true;
q:=a[x];
while q<>nil do begin
if (r[q^.inf]=0)or(cauta(r[q^.inf])) then begin
l[x]:=q^.inf;
r[q^.inf]:=x;
cauta:=true;
break;
end;
q:=q^.urm;
end;
end;
end;
begin
assign(f,'cuplaj.in');reset(f);
assign(g,'cuplaj.out');rewrite(g);
citire;
ok:=1;
while ok<>0 do begin
ok:=0;
for i:=0 to n do v[i]:=false;
for i:=1 to n do
if l[i]=0 then
if cauta(i) then begin
inc(nr);
ok:=1;
end;
end;
writeln(g,nr);
for i:=1 to n do
if l[i]<>0 then writeln(g,i,' ',l[i]);
close(f);close(g);
end.