program BFS; var a:array[0..1000,0..1000]of integer; i,j,k,n,s:integer; v:array[0..1000]of boolean; b:array[0..1000]of integer; front,tail:integer; procedure bfs(x:integer); var j:integer; begin v[i]:=true; b[tail]:=x; while front<=tail do begin for j:=0 to n-1 do if (a[b[front],j]=1)and(v[j]=false)then begin inc(tail); v[j]:=true; b[tail]:=j; end; inc(front); end; end; {*********main*********} begin readln(n);front:=1; fillchar(v,sizeof(v),false); for i:=0 to n-1 do for j:=0 to n-1 do begin read(a[i,j]); end; for i:=0 to n-1 do if not v[i] then begin tail:=front;bfs(i);end; for i:=1 to n do write(b[i],' '); writeln; end. /************************************************************** Problem: 2160 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/