program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,Dialogs;
var
People:array of array of byte;
NNum:array of integer;
View:array of boolean;
Num:array of integer;
n,s:integer;
procedure Init;
var
x,y:integer;
begin
s:=0;
Assign(input,'c:\summer.in');
Reset(input);
Readln(n);
SetLength(People,n,n);
SetLength(Num,n); SetLength(NNum,n);
SetLength(View,n);
For y:=0 to n-1 do begin
Num[y]:=0; View[y]:=false; NNum[y]:=0;
For x:=0 to n-1 do begin
Read(People[x,y]);
end;
end;
close(input);
end;
procedure SaveResult;
var
i:integer;
begin
Assign(output,'c:\summer.out');
Rewrite(output);
for i:=0 to n-1 do begin
write(NNum[i]+1,' ');
end;
close(output);
end;
procedure Solve(ClonNum:array of integer; ClonView:array of boolean; p,len:integer);
var
i,k:integer;
begin
ClonNum[len]:=p;
ClonView[p]:=true;
len:=len+1;
for i:=0 to n-1 do begin
if (ClonView[i]=false) and (People[i,p]=1) then begin
Solve(ClonNum,ClonView,i,len);
end;
end;
if s<len then begin
s:=len;
NNum:=@ClonNum;
end;
end;
var
j,k:integer;
begin
Init;
for j:=0 to n-1 do begin
for k:=0 to n-1 do begin
num[k]:=0; view[k]:=false; //Приходится обнулять
end;
Solve(Num,View,j,0);
end;
SaveResult;
end.
|