結果
| 問題 |
No.307 最近色塗る問題多くない?
|
| コンテスト | |
| ユーザー |
chocorusk
|
| 提出日時 | 2020-09-23 16:07:19 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 828 ms / 4,000 ms |
| コード長 | 1,133 bytes |
| コンパイル時間 | 147 ms |
| コンパイル使用メモリ | 81,996 KB |
| 実行使用メモリ | 84,084 KB |
| 最終ジャッジ日時 | 2024-06-27 22:43:05 |
| 合計ジャッジ時間 | 7,017 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 36 |
ソースコード
import sys
read=sys.stdin.buffer.read
readline=sys.stdin.buffer.readline
readlines=sys.stdin.buffer.readlines
from collections import deque
h, w=map(int, readline().split())
a=[]
cnt1=0
for i in range(h):
ai=list(map(int, readline().split()))
a.append(ai)
cnt1+=sum(ai)
a0=-1
if cnt1==0 or cnt1==h*w:
a0=0
q=int(readline())
for _ in range(q):
r, c, x=map(int, readline().split())
r-=1
c-=1
if a0!=-1:
if (a[r][c]^a0)!=x:
a0^=1
continue
if a[r][c]==x:
continue
que=deque()
que.append((r, c))
a[r][c]=x
if x==1:
cnt1+=1
else:
cnt1-=1
while que:
r0, c0=que.popleft()
for dx, dy in [(1, 0), (-1, 0), (0, 1), (0, -1)]:
r1, c1=r0+dx, c0+dy
if r1<0 or r1>=h or c1<0 or c1>=w or a[r1][c1]==x:
continue
a[r1][c1]=x
if x==1:
cnt1+=1
else:
cnt1-=1
que.append((r1, c1))
if cnt1==0 or cnt1==h*w:
a0=0
if a0==-1:a0=0
for i in range(h):
print(' '.join(map(str, [x^a0 for x in a[i]])))
chocorusk