Вот измененный код (пробавал const - не помогает):
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,Dialogs;
type v=array of boolean;
type list=array of integer;
var
People:array of array of byte;
NNum:List;
View:v;
Num:list;
n,s:integer;
procedure Init;
var
x,y:integer;
begin
s:=0;
Assign(input,'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,'summer.out');
Rewrite(output);
for i:=0 to n-1 do begin
write(NNum[i]+1,' ');
end;
close(output);
end;
procedure Solve(ClonNum:List; ClonView:v; 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:=Copy(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.
|