結果
| 問題 |
No.2432 Flip and Move
|
| コンテスト | |
| ユーザー |
👑 SPD_9X2
|
| 提出日時 | 2023-08-18 23:15:19 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 431 ms / 2,000 ms |
| コード長 | 902 bytes |
| コンパイル時間 | 1,046 ms |
| コンパイル使用メモリ | 81,924 KB |
| 実行使用メモリ | 146,832 KB |
| 最終ジャッジ日時 | 2024-11-28 10:04:39 |
| 合計ジャッジ時間 | 10,895 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 36 |
ソースコード
"""
やるだけ
"""
import sys
from sys import stdin
H,W = map(int,stdin.readline().split())
K = int(stdin.readline())
ans = [0] * (H*W)
state = [-1 for i in range(4*H*W)]
x,y = 0,0
UD = 1
LR = 1
step = 0
while True:
step += 1
K -= 1
ans[x*W+y] ^= 1
if UD == 0 and x == 0:
UD = 1
elif UD == 1 and x == H-1:
UD = 0
elif UD == 0:
x -= 1
else:
x += 1
if LR == 0 and y == 0:
LR = 1
elif LR == 1 and y == W-1:
LR = 0
elif LR == 0:
y -= 1
else:
y += 1
UDLR = 2*UD+LR
idx = UDLR*H*W + x*W + y
if state[idx] == -1:
state[idx] = step
else:
diff = step - state[idx]
K %= 2*diff
state[idx] = step
if K == 0:
break
ANS = [ "".join(["#" if ans[i*W+j]==1 else "." for j in range(W)]) for i in range(H)]
print (*ANS,sep="\n")
SPD_9X2