program DFS; var v:array[0..100]of boolean; a:array[0..100,0..100]of integer; b:array[0..100]of integer; i,r,j,k,n:integer; procedure dfs(i:integer); var j:integer; begin v[i]:=true; b[k]:=i;inc(k); for j:=1 to n-1 do begin if (not v[j])and(a[i,j]=1)then dfs(j); end; end; {*******main*********} begin readln(n); 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; k:=0; for i:=0 to n-1 do if not v[i] then dfs(i); for i:=0 to n-1 do begin write(b[i],' '); end; writeln; end. /************************************************************** Problem: 2159 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/