結果
| 問題 | No.3733 My First Grid |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-09-19 16:05:37 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 3,970 bytes |
| 記録 | |
| コンパイル時間 | 63 ms |
| コンパイル使用メモリ | 82,660 KB |
| 実行使用メモリ | 153,484 KB |
| 最終ジャッジ日時 | 2026-09-19 16:05:46 |
| 合計ジャッジ時間 | 5,181 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 55 WA * 2 |
ソースコード
def main():
h, w, k = list(map(int, input().split()))
if k == 0:
for y in range(h):
print("."*w)
return
if h == 1:
if k == 1:
print("#"+"."*(w-1))
else:
print(-1)
return
if w == 1:
if k == 1:
print("#")
for y in range(h-1): print(".")
else:
print(-1)
return
if k == 1:
print(-1)
return
if h == 2:
if 2 <= k <= w:
print("#"*(k-1)+"."*(w-k+1))
print("."*w)
else:
print(-1)
return
if w == 2:
if 2 <= k <= h:
for _ in range(k-1):
print("#.")
for _ in range(h-k+1):
print("..")
else:
print(-1)
return
if k == 2:
print("#"+"."*(w-1))
for _ in range(h-1):
print("."*w)
return
if k == 3:
print("##"+"."*(w-2))
for _ in range(h-1):
print("."*w)
return
if not h % 2 and not w % 2 and 0:
assert 0
A = [[0 for _ in range(w)] + [1] for _ in range(h)] + [[1] * (w+1)]
for y in range(h):
A[y][0] = 1
for x in range(w-1):
A[y-1][x] = 1
y, x = h-1, w-2
dy = [1, 0, -1, 0]
dx = [0, 1, 0, -1]
di = 2
E = []
while 1:
if not A[y][x]:
E.append((y, x))
A[y][x] = 1
if A[y+dy[di]][x+dx[di]]: break
if A[y+dy[di]+dy[(di+1)%4]][x+dx[di]+dx[(di+1)%4]]: break
if not A[y+dy[di]*2][x+dx[di]*2]:
y, x = y+dy[di], x+dx[di]
else:
di = (di+1)%4
a = 0
for aa in A[:-1]:
a += sum(aa[:-1])
if 2*a+1-h-w+1 < k:
print(-1)
return
assert 0
else:
A = [[0 for _ in range(w)] + [1] for _ in range(h)] + [[1] * (w+1)]
y, x = 0, 1
dy = [1, 0, -1, 0]
dx = [0, 1, 0, -1]
di = 0
E = []
while 1:
if not A[y][x]:
E.append((y, x))
A[y][x] = 1
if A[y+dy[di]][x+dx[di]]: break
if A[y+dy[di]+dy[(di+1)%4]][x+dx[di]+dx[(di+1)%4]]: break
if not A[y+dy[di]*2][x+dx[di]*2]:
y, x = y+dy[di], x+dx[di]
else:
di = (di+1)%4
a = 0
for aa in A[:-1]:
a += sum(aa[:-1])
if k <= 2*a+1 :
Ans = [["." for _ in range(w)] for _ in range(h)]
if not k % 2:
Ans[0][0] = "#"
Ans[1][0] = "#"
for i in range(k//2):
y, x = E[i]
Ans[y][x] = "#"
for ans in Ans:
print("".join(ans))
return
h, w = w, h
A = [[0 for _ in range(w)] + [1] for _ in range(h)] + [[1] * (w+1)]
y, x = 0, 1
dy = [1, 0, -1, 0]
dx = [0, 1, 0, -1]
di = 0
E = []
while 1:
if not A[y][x]:
E.append((y, x))
A[y][x] = 1
if A[y+dy[di]][x+dx[di]]: break
if A[y+dy[di]+dy[(di+1)%4]][x+dx[di]+dx[(di+1)%4]]: break
if not A[y+dy[di]*2][x+dx[di]*2]:
y, x = y+dy[di], x+dx[di]
else:
di = (di+1)%4
a = 0
for aa in A[:-1]:
a += sum(aa[:-1])
if k <= 2*a+1:
Ans = [["." for _ in range(w)] for _ in range(h)]
if not k % 2:
Ans[0][0] = "#"
Ans[1][0] = "#"
for i in range(k//2):
y, x = E[i]
Ans[y][x] = "#"
Ans = [[Ans[y][x] for y in range(h)] for x in range(w)]
for ans in Ans:
print("".join(ans))
return
print(-1)
return
main()
kidodesu