結果
| 問題 |
No.3378 Go Board
|
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2025-11-21 23:19:40 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,546 bytes |
| コンパイル時間 | 158 ms |
| コンパイル使用メモリ | 82,468 KB |
| 実行使用メモリ | 81,104 KB |
| 最終ジャッジ日時 | 2025-11-21 23:19:48 |
| 合計ジャッジ時間 | 7,834 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 12 WA * 10 |
ソースコード
def main(n, k):
if 2 * k > n * n:
return []
if k < n:
return []
Ans = [[0 for _ in range(n)] for _ in range(n)]
if k == 2 * n:
for y in range(n):
Ans[y][1] = 1
Ans[y][2] = 1
return Ans
elif k == 2 * n + 1:
Ans[0][1] = 1
Ans[0][3] = 1
Ans[1][3] = 1
for y in range(1, n):
Ans[y][1] = 1
Ans[y][2] = 1
return Ans
K = 2*k
t = K // n
s = K % n
x = t-1
cnt = 0
while x >= 0:
for y in range(s):
cnt += 1
Ans[y][x] = 1
for y in range(s, n):
if 0 <= x-1:
cnt += 1
Ans[y][x-1] = 1
else:
cnt += 1
Ans[y][x] = 1
x -= 3
if s == 0:
r = t-1
else:
r = t
y = (s-1) % n
for x in range(r):
if not Ans[y][x]:
cnt += 1
Ans[y][x] = 1
ama = k - cnt
if s == 0:
x = t-2
y = n-1
else:
x = t-1
y = s-1
while ama:
if not Ans[y][x]:
Ans[y][x] = 1
ama -= 1
y -= 1
if y == -1:
y = n-1
x -= 1
return Ans
for _ in range(int(input())):
n, k = map(int, input().split())
Ans = main(n, k)
if Ans:
print("Yes")
Ans = [["#" if Ans[y][x] else "." for x in range(n)] for y in range(n)]
for ans in Ans:
print("".join(ans))
else:
print("No")
kidodesu