讨论 / 一错再错
luyifan 2009-01-14 19:20:00
点我顶贴 收藏 删除
var

k1,n,i,j,k2,k,x:longint;

vis:array[1..10,1..10]of boolean;

c:array[1..10]of longint;

b:array[1..10]of longint;

procedure sou;

var i,j:longint;

begin

k2:=0;

for i:=1 to n do

if c[i]=0

then begin k2:=i;exit;end;

if k2=0

then begin writeln(’What a poor boy!’);halt;end;

end;

begin

readln(n);

for i:=1 to n do

begin

read(k);

for j:=1 to k do

begin

read(x);

inc(c[i]);

vis[x,i]:=true;

end;

readln;

end;

k1:=1;

repeat

sou;

b[k1]:=k2;

inc(k1);

for i:=1 to n do

if vis[k2,i]=true

then begin vis[k2,i]:=false;

dec(c[i]);

end;

for i:=1 to n do

vis[i,k2]:=true;

until k1=n+1;

for i:=1 to n-1 do

write(b[i],’ ’);

writeln(b[n]);

end.

why 60分啊?是拓扑排序啦?????晕晕

查看更多回复
提交回复