結果
| 問題 | No.3661 Grid Paint Game |
| コンテスト | |
| ユーザー |
回転
|
| 提出日時 | 2026-08-30 14:52:10 |
| 言語 | PyPy3 (7.3.23) |
| 結果 |
AC
|
| 実行時間 | 249 ms / 2,000 ms |
| + 312µs | |
| コード長 | 2,285 bytes |
| 記録 | |
| コンパイル時間 | 273 ms |
| コンパイル使用メモリ | 95,720 KB |
| 実行使用メモリ | 84,992 KB |
| 最終ジャッジ日時 | 2026-08-30 14:52:23 |
| 合計ジャッジ時間 | 3,055 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 8 |
ソースコード
def naive(H,W):
grid = [["@" for _ in range(W)] for _ in range(H)]
can = set(range(H+W))
def f():
nonlocal can
if(not can):
return 2 * sum(sum(grid[i][j] == "#" for j in range(W)) for i in range(H)) - H*W >= 0
for i in list(can):
if(i < H):
can.remove(i)
memo = grid[i][:]
grid[i] = ["#"] * W
if(g()):
can.add(i)
grid[i] = memo[:]
return True
else:
can.add(i)
grid[i] = memo[:]
else:
can.remove(i)
memo = [grid[j][i-H] for j in range(H)]
for j in range(H):grid[j][i-H] = "#"
if(g()):
can.add(i)
for j in range(H):grid[j][i-H] = memo[j]
return True
else:
can.add(i)
for j in range(H):grid[j][i-H] = memo[j]
return False
def g():
nonlocal can
if(not can):
return 2 * sum(sum(grid[i][j] == "#" for j in range(W)) for i in range(H)) - H*W >= 0
for i in list(can):
if(i < H):
can.remove(i)
memo = grid[i][:]
grid[i] = ["."] * W
if(not f()):
can.add(i)
grid[i] = memo[:]
return False
else:
can.add(i)
grid[i] = memo[:]
else:
can.remove(i)
memo = [grid[j][i-H] for j in range(H)]
for j in range(H):grid[j][i-H] = "."
if(not f()):
can.add(i)
for j in range(H):grid[j][i-H] = memo[j]
return False
else:
can.add(i)
for j in range(H):grid[j][i-H] = memo[j]
return True
return f()
# for i in range(1,10):
# for j in range(1,10):
# print(i,j,"🔶" if naive(i,j) else "🔷")
T = int(input())
for _ in range(T):
H,W = list(map(int,input().split()))
print("sepa" if (H+W) % 2 == 1 else "ryota")
回転