結果

問題 No.971 いたずらっ子
ユーザー tatt61880
提出日時 2020-03-18 23:15:53
言語 Kuin
(KuinC++ v.2021.9.17)
結果
AC  
実行時間 166 ms / 2,000 ms
コード長 1,004 bytes
コンパイル時間 9,869 ms
コンパイル使用メモリ 149,676 KB
実行使用メモリ 43,520 KB
最終ジャッジ日時 2024-11-07 11:42:36
合計ジャッジ時間 5,869 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

func main()
	var ss: [][]char :: cui@input().split(" ")
	var H: int :: ss[0].toInt(&)
	var W: int :: ss[1].toInt(&)
	var m: [][]char :: #[H, W]char
	var mp: [][]int :: #[H, W]int
	for h(0, H - 1)
		do m[h] :: cui@input()
	end for
	
	var dx: []int :: [0, 1]
	var dy: []int :: [1, 0]
	do mp[0][0] :: 0
	for h(0, H - 1)
		for w(0, W - 1)
			var x0: int :: w
			var y0: int :: h
			var v0: int :: mp[y0][x0]
			;do cui@print("\{x0} \{y0}\n")
			for i(0, 1)
				var x: int :: x0 + dx[i]
				var y: int :: y0 + dy[i]
				if(x = W | y = H)
					skip i
				end if
				var v: int :: v0 + 1 + ((m[y][x] = 'k') ?(x + y, 0))
				if(mp[y][x] = 0)
					do mp[y][x] :: v
				elif(v < mp[y][x])
					do mp[y][x] :: v
				end if
				;do cui@print("(\{x0}, \{y0})→(\{x}, \{y}) \{v}→\{mp[y][x]}\n")
			end for
		end for
	end for
	{
		for h(0, H - 1)
			for w(0, W - 1)
				do cui@print("\{mp[h][w]}\t")
			end for
			do cui@print("\n")
		end for
	}
	
	var ans: int :: mp[H - 1][W - 1]
	do cui@print("\{ans}\n")
end func
0