Pagini recente » Cod sursa (job #1916496) | Cod sursa (job #1384373) | Cod sursa (job #528294) | Cod sursa (job #86096) | Cod sursa (job #545693)
Cod sursa(job #545693)
type mat=array[1..25000,1..25000] of 0..3;
vek=array[1..5000] of boolean;
var f:text; i,j,a,b,n,m:integer; v1,v2:vek; x:mat;
procedure df1(k:integer);
var i:integer;
begin
v1[k]:=true;
for i:=1 to n do begin
if ((x[k,i]=1)or(x[k,i]=3))and(not v1[i]) then df1(i);
end;
end;
procedure df2(k:integer);
var i:integer;
begin
v2[k]:=true;
for i:=1 to n do begin
if ((x[k,i]=2)or(x[k,i]=3))and(not v2[i]) then df2(i);
end;
end;
begin
assign(f,'ctc.in');
reset(f);
readln(f,n,m);
for i:=1 to m do begin
readln(f,a,b);
if x[a,b]=0 then begin x[a,b]:=1; x[b,a]:=2; end
else begin x[a,b]:=3; x[b,a]:=3; end;
end;
close(f);
a:=0; b:=0;
assign(f,'ctc.out');
rewrite(f);
for i:=1 to n do begin
v1[i]:=false;
v2[i]:=false;
end;
repeat
i:=1;
while (i<n) and v2[i] do begin inc(i); end;
a:=i;
for i:=1 to n do begin
v1[i]:=false;
v2[i]:=false;
end;
df1(a);
df2(a);
writeln(f);
for i:=1 to n do
if v1[i]=v2[i] then begin inc(b); write(f,i,' '); end;
until b=n;
close(f);
end.