program poisk_glib; {$APPTYPE CONSOLE} var m,n:integer; c:array [1..100,1..100] of integer; s,smin,kk,k,im,np,i,j:integer; rez,stack:array [0..100] of integer; f1:text; function f:boolean; var ii:integer; p:boolean; begin p:=true; for ii:=0 to im-1 do if (np=stack[ii])then p:=false; f:=p; end; procedure outresalt; var p,i:integer; vv:boolean; begin {перевiрка на повторення} if c[stack[0],stack[im-1]]>1 then begin s:=0; for i:=0 to m-1 do s:=s+c[stack[i],stack[i+1]]; s:=s+c[stack[m],stack[0]]; for i:=0 to m do write(stack[i],' '); writeln(s); readln; if s0 do begin while ((np<=n)and(c[stack[im-1],np]=0)) or not(f) do np:=np+1; if (np>n) then begin im:=im-1; np:=stack[im]+1; end else begin stack[im]:=np; im:=im+1; np:=1; if im-1=m then begin outresalt;im:=im-1;np:=stack[im]+1;end end; end; assign(f1,'graph.sol'); rewrite(f1); for i:=0 to m-1 do write(f1,rez[i],' '); writeln(f1,rez[m]); writeln(f1,smin); CLOSE(F1); end.