結果
問題 | No.2900 Star Divine |
ユーザー |
|
提出日時 | 2024-10-16 18:46:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 512 ms / 2,000 ms |
コード長 | 791 bytes |
コンパイル時間 | 338 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 89,252 KB |
最終ジャッジ日時 | 2024-10-16 18:46:56 |
合計ジャッジ時間 | 4,649 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
ソースコード
T=int(input())for _ in range(T):x,y,m=map(int,input().split())red=[set() for i in range(y)]blue=[-1]*xcnt=[0]*xfor i in range(m):u,v=map(int,input().split())u-=1v-=1red[v].add(u)blue[u]=max(blue[u],v)for i in range(y):for j in red[i]:cnt[j]^=1last=[[] for i in range(y)]for i in range(x):last[blue[i]].append(i)use=[0]*yodd=[0]*xfor i in range(y):diff=[0,0]for j in last[i]:if cnt[j]==0:diff[odd[j]]+=1if diff[0]>diff[1]:use[i]=1for j in red[i]:odd[j]^=1if sum(use)+sum(odd)<(x+y+1)//2:for i in range(y):use[i]^=1for i in range(x):odd[i]^=cnt[i]print(sum(odd),sum(use))assert(sum(odd)+sum(use)>=(x+y+1)//2)print(*[i+1 for i in range(x) if odd[i]])print(*[i+1 for i in range(y) if use[i]])