結果
問題 |
No.2432 Flip and Move
|
ユーザー |
![]() |
提出日時 | 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")