結果
問題 | No.1169 Row and Column and Diagonal |
ユーザー | c-yan |
提出日時 | 2020-08-14 23:09:44 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,000 bytes |
コンパイル時間 | 286 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 18,208 KB |
最終ジャッジ日時 | 2024-10-10 16:36:16 |
合計ジャッジ時間 | 4,831 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | RE | - |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | WA | - |
testcase_06 | TLE | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
ソースコード
from sys import setrecursionlimit setrecursionlimit(10 ** 6) N = int(input()) result = [[-1] * N for _ in range(N)] usedT = [[False] * N for _ in range(N)] usedY = [[False] * N for _ in range(N)] def dfs(i, j): if result[i][j] != -1: if i == N - 1 and j == N - 1: return True elif j == N - 1: return dfs(i + 1, 0) else: return dfs(i, j + 1) for k in range(N): if usedT[j][k]: continue if usedY[i][k]: continue result[i][j] = k usedT[j][k] = True usedY[i][k] = True if j == N - 1: t = dfs(i + 1, 0) else: t = dfs(i, j + 1) if t: return True else: result[i][j] = -1 usedT[j][k] = False usedY[i][k] = False return False for i in range(N): result[i][i] = i usedT[i][i] = True usedY[i][i] = True dfs(0, 1) for i in range(N): print(*result[i])