結果
問題 |
No.2928 Gridpath
|
ユーザー |
|
提出日時 | 2024-09-03 23:41:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 153 ms / 2,000 ms |
コード長 | 920 bytes |
コンパイル時間 | 374 ms |
コンパイル使用メモリ | 82,848 KB |
実行使用メモリ | 77,508 KB |
最終ジャッジ日時 | 2024-09-04 00:21:49 |
合計ジャッジ時間 | 2,674 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 |
ソースコード
n, m = map(int, input().split()) si, sj = map(lambda x: int(x) - 1, input().split()) gi, gj = map(lambda x: int(x) - 1, input().split()) dx4 = [1, 0, -1, 0] dy4 = [0, 1, 0, -1] # 0 = blank, 1 = wall ans = 0 grid = [[0] * m for _ in range(n)] def valid(i, j): if not (0 <= i < n): return False if not (0 <= j < m): return False return True def solve(i, j): global ans if i == gi and j == gj: ans += 1 return for k in range(4): ni, nj = i + dx4[k], j + dy4[k] if not valid(ni, nj): continue if grid[ni][nj]: continue neighbor = 0 for l in range(4): pi, pj = ni + dx4[l], nj + dy4[l] if not valid(pi, pj): continue if grid[pi][pj]: neighbor += 1 if neighbor == 1: grid[ni][nj] = 1 solve(ni, nj) grid[ni][nj] = 0 grid[si][sj] = 1 solve(si, sj) print(ans)