All pastes #976051 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-04-07 21:57 UTC
rendered paste body
program dm6;

const n=9;

var G: array[1..n,1..n] of integer;
    presist:array[1..n] of integer;
    short:array[1..n] of integer;
    i,j,a1,a2,a3,a4,a5,a6,a7,a8,a9,number,number2:integer;

begin
	for i:=1 to n do
	for j:=1 to n do
		G[i,j]:=0;
	for i:=1 to n do
		presist[i]:=0;
	G[1,1]:=1; G[1,2]:=1; G[1,3]:=1; G[1,4]:=1; G[1,7]:=1;
	G[2,1]:=1; G[2,2]:=1; G[2,3]:=1; G[2,5]:=1; G[2,8]:=1;
	G[3,1]:=1; G[3,2]:=1; G[3,3]:=1; G[3,6]:=1; G[3,8]:=1;
	G[4,1]:=1; G[4,4]:=1; G[4,5]:=1; G[4,7]:=1;
	G[5,2]:=1; G[5,4]:=1; G[5,5]:=1; G[5,7]:=1; G[5,8]:=1;
	G[6,3]:=1; G[6,6]:=1; G[6,9]:=1;
	G[7,1]:=1; G[7,4]:=1; G[7,5]:=1; G[7,7]:=1; G[7,9]:=1;
	G[8,2]:=1; G[8,3]:=1; G[8,5]:=1; G[8,8]:=1; G[8,9]:=1;
	G[9,6]:=1; G[9,7]:=1; G[9,8]:=1; G[9,9]:=1;
	writeln('matrix is');
	for j:=1 to n do
	begin
	for i:=1 to n do
		write(G[i,j],' ');
	writeln;
	end;
	number:=999;
	number2:=0;
	for a1:=1 to n do
	begin
	presist[a1]:=1;
	number2:=number2+1;
	for a2:=1 to n do
	begin
	number2:=number2+1;
	presist[a2]:=1;
	if G[a1,a2]=1 then
		for a3:=1 to n do
		begin
		number2:=number2+1;
		presist[a3]:=1;
		if G[a2,a3]=1 then
		for a4:=1 to n do
		begin
		number2:=number2+1;
		presist[a4]:=1;
		if G[a3,a4]=1 then
			for a5:=1 to n do
			begin
			number2:=number2+1;
			presist[a5]:=1;
			if G[a4,a5]=1 then
			for a6:=1 to n do
			begin
			number2:=number2+1;
			presist[a6]:=1;
			if G[a5,a6]=1 then
				for a7:=1 to n do
				begin
				number2:=number2+1;
				presist[a7]:=1;
				if G[a6,a7]=1 then
				for a8:=1 to n do
				begin
				number2:=number2+1;
				presist[a8]:=1;
				if G[a7,a8]=1 then
					for a9:=1 to n do
					if G[a8,a9]=1 then
					begin
					number2:=number2+1;
					presist[a9]:=1;
					if number2<number then
					if presist[1]=1 then
					if presist[2]=1 then
					if presist[3]=1 then
					if presist[4]=1 then
					if presist[5]=1 then
					if presist[6]=1 then
					if presist[7]=1 then
					if presist[8]=1 then
					if presist[9]=1 then
					begin
					short[1]:=a1; short[2]:=a2; short[3]:=a3; short[4]:=a4; short[5]:=a5;
					short[6]:=a6; short[7]:=a7; short[8]:=a8; short[9]:=a9;
					end;
					number2:=number2-1;	
					if a9<>a8 then
					if a9<>a7 then
					if a9<>a6 then
					if a9<>a5 then
					if a9<>a4 then
					if a9<>a3 then
					if a9<>a2 then
					if a9<>a1 then
					presist[a9]:=0;
					end;
				number2:=number2-1;
				if a8<>a7 then
				if a8<>a6 then
				if a8<>a5 then
				if a8<>a4 then
				if a8<>a3 then
				if a8<>a2 then
				if a8<>a1 then
				presist[a8]:=0;	
				end;
				number2:=number2-1;
				if a7<>a6 then	
				if a7<>a5 then	
				if a7<>a4 then	
				if a7<>a3 then	
				if a7<>a2 then	
				if a7<>a1 then	
				presist[a7]:=0;	
				end;
			number2:=number2-1;
			if a6<>a5 then
			if a6<>a4 then
			if a6<>a3 then
			if a6<>a2 then
			if a6<>a1 then
			presist[a6]:=0;	
			end;
			number2:=number2-1;
			if a5<>a4 then
			if a5<>a3 then
			if a5<>a2 then
			if a5<>a1 then
			presist[a5]:=0;		
			end;
		number2:=number2-1;
		if a4<>a3 then
		if a4<>a2 then
		if a4<>a1 then
		presist[a4]:=0;
		end;
		number2:=number2-1;
		if a3<>a2 then
		if a3<>a1 then
		presist[a3]:=0;	
		end;
	number2:=number2-1;
	if a2<>a1 then
	presist[a2]:=0;
	end;
	number2:=number2-1;
	presist[a1]:=0;
	end;
writeln('shortest way is');
for i:=1 to n do
write(short[i],'  ');
writeln;
end.