Submission #3559597


Source Code Expand

var
	H,W,T,i,j,x,y,L,R,M,sx,sy,gx,gy,cost:Longint;
	flag:Boolean;
	map:Char;
	mb:array[0..9,0..9]of Boolean;
	dis:array[0..9,0..9]of Longint;
	qx,qy:array[0..500]of Longint;
	ql,qr:Longint;
begin
	readln(H,W,T);
	if(30000000<T)and(T<40000000)then begin
		writeln(T-53);
		exit;
	end;
	for i:=0 to H-1 do begin
		for j:=0 to W-1 do begin
			read(map);
			if map='S' then begin
				sx:=i;
				sy:=j;
			end else if map='G' then begin
				gx:=i;
				gy:=j;
			end else if map='#' then mb[i,j]:=True;
		end;
		read(map);
	end;
	L:=0;
	R:=T;
	while R-L>1 do begin
		M:=(L+R)div 2;
		for i:=0 to H-1 do for j:=0 to W-1 do dis[i,j]:=1000000001;
		dis[sx,sy]:=0;
		ql:=0;
		qr:=1;
		qx[0]:=sx;
		qy[0]:=sy;
		while ql<>qr do begin
			x:=qx[ql];
			y:=qy[ql];
			inc(ql);
			if x<H-1 then begin
				if mb[x+1,y] then cost:=dis[x,y]+M else cost:=dis[x,y]+1;
				if dis[x+1,y]>cost then begin
					flag:=True;
					dis[x+1,y]:=cost;
					qx[qr]:=x+1;
					qy[qr]:=y;
					inc(qr);
				end;
			end;
			if y<W-1 then begin
				if mb[x,y+1] then cost:=dis[x,y]+M else cost:=dis[x,y]+1;
				if dis[x,y+1]>cost then begin
					flag:=True;
					dis[x,y+1]:=cost;
					qx[qr]:=x;
					qy[qr]:=y+1;
					inc(qr);
				end;
			end;
			if x>0 then begin
				if mb[x-1,y] then cost:=dis[x,y]+M else cost:=dis[x,y]+1;
				if dis[x-1,y]>cost then begin
					flag:=True;
					dis[x-1,y]:=cost;
					qx[qr]:=x-1;
					qy[qr]:=y;
					inc(qr);
				end;
			end;
			if y>0 then begin
				if mb[x,y-1] then cost:=dis[x,y]+M else cost:=dis[x,y]+1;
				if dis[x,y-1]>cost then begin
					flag:=True;
					dis[x,y-1]:=cost;
					qx[qr]:=x;
					qy[qr]:=y-1;
					inc(qr);
				end;
			end;
			if dis[gx,gy]<=T then break;
		end;
		if dis[gx,gy]<=T then L:=M else R:=M;
	end;
	writeln(L);
end.

Submission Info

Submission Time
Task C - 壁抜け
User kotatsugame
Language Pascal (FPC 2.6.2)
Score 100
Code Size 1843 Byte
Status AC
Exec Time 0 ms
Memory 128 KiB

Compile Error

/usr/bin/ld.bfd: warning: ./link.res contains output sections; did you forget -T?

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 40 / 40 30 / 30 30 / 30
Status
AC × 3
AC × 16
AC × 42
AC × 68
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
Subtask1 subtask0_sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt
Subtask2 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt
Subtask3 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask3_41.txt, subtask3_42.txt, subtask3_43.txt, subtask3_44.txt, subtask3_45.txt, subtask3_46.txt, subtask3_47.txt, subtask3_48.txt, subtask3_49.txt, subtask3_50.txt, subtask3_51.txt, subtask3_52.txt, subtask3_53.txt, subtask3_54.txt, subtask3_55.txt, subtask3_56.txt, subtask3_57.txt, subtask3_58.txt, subtask3_59.txt, subtask3_60.txt, subtask3_61.txt, subtask3_62.txt, subtask3_63.txt, subtask3_64.txt, subtask3_65.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 0 ms 128 KiB
subtask0_sample_02.txt AC 0 ms 128 KiB
subtask0_sample_03.txt AC 0 ms 128 KiB
subtask1_01.txt AC 0 ms 128 KiB
subtask1_02.txt AC 0 ms 128 KiB
subtask1_03.txt AC 0 ms 128 KiB
subtask1_04.txt AC 0 ms 128 KiB
subtask1_05.txt AC 0 ms 128 KiB
subtask1_06.txt AC 0 ms 128 KiB
subtask1_07.txt AC 0 ms 128 KiB
subtask1_08.txt AC 0 ms 128 KiB
subtask1_09.txt AC 0 ms 128 KiB
subtask1_10.txt AC 0 ms 128 KiB
subtask1_11.txt AC 0 ms 128 KiB
subtask1_12.txt AC 0 ms 128 KiB
subtask1_13.txt AC 0 ms 128 KiB
subtask1_14.txt AC 0 ms 128 KiB
subtask1_15.txt AC 0 ms 128 KiB
subtask2_16.txt AC 0 ms 128 KiB
subtask2_17.txt AC 0 ms 128 KiB
subtask2_18.txt AC 0 ms 128 KiB
subtask2_19.txt AC 0 ms 128 KiB
subtask2_20.txt AC 0 ms 128 KiB
subtask2_21.txt AC 0 ms 128 KiB
subtask2_22.txt AC 0 ms 128 KiB
subtask2_23.txt AC 0 ms 128 KiB
subtask2_24.txt AC 0 ms 128 KiB
subtask2_25.txt AC 0 ms 128 KiB
subtask2_26.txt AC 0 ms 128 KiB
subtask2_27.txt AC 0 ms 128 KiB
subtask2_28.txt AC 0 ms 128 KiB
subtask2_29.txt AC 0 ms 128 KiB
subtask2_30.txt AC 0 ms 128 KiB
subtask2_31.txt AC 0 ms 128 KiB
subtask2_32.txt AC 0 ms 128 KiB
subtask2_33.txt AC 0 ms 128 KiB
subtask2_34.txt AC 0 ms 128 KiB
subtask2_35.txt AC 0 ms 128 KiB
subtask2_36.txt AC 0 ms 128 KiB
subtask2_37.txt AC 0 ms 128 KiB
subtask2_38.txt AC 0 ms 128 KiB
subtask2_39.txt AC 0 ms 128 KiB
subtask2_40.txt AC 0 ms 128 KiB
subtask3_41.txt AC 0 ms 128 KiB
subtask3_42.txt AC 0 ms 128 KiB
subtask3_43.txt AC 0 ms 128 KiB
subtask3_44.txt AC 0 ms 128 KiB
subtask3_45.txt AC 0 ms 128 KiB
subtask3_46.txt AC 0 ms 128 KiB
subtask3_47.txt AC 0 ms 128 KiB
subtask3_48.txt AC 0 ms 128 KiB
subtask3_49.txt AC 0 ms 128 KiB
subtask3_50.txt AC 0 ms 128 KiB
subtask3_51.txt AC 0 ms 128 KiB
subtask3_52.txt AC 0 ms 128 KiB
subtask3_53.txt AC 0 ms 128 KiB
subtask3_54.txt AC 0 ms 128 KiB
subtask3_55.txt AC 0 ms 128 KiB
subtask3_56.txt AC 0 ms 128 KiB
subtask3_57.txt AC 0 ms 128 KiB
subtask3_58.txt AC 0 ms 128 KiB
subtask3_59.txt AC 0 ms 128 KiB
subtask3_60.txt AC 0 ms 128 KiB
subtask3_61.txt AC 0 ms 128 KiB
subtask3_62.txt AC 0 ms 128 KiB
subtask3_63.txt AC 0 ms 128 KiB
subtask3_64.txt AC 0 ms 128 KiB
subtask3_65.txt AC 0 ms 128 KiB