結果
問題 | No.2900 Star Divine |
ユーザー | hirayuu_yc |
提出日時 | 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 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 124 ms
76,416 KB |
testcase_01 | AC | 294 ms
78,072 KB |
testcase_02 | AC | 299 ms
79,988 KB |
testcase_03 | AC | 304 ms
89,252 KB |
testcase_04 | AC | 472 ms
81,684 KB |
testcase_05 | AC | 222 ms
85,504 KB |
testcase_06 | AC | 46 ms
53,248 KB |
testcase_07 | AC | 512 ms
81,768 KB |
testcase_08 | AC | 156 ms
84,480 KB |
testcase_09 | AC | 227 ms
76,928 KB |
ソースコード
T=int(input()) for _ in range(T): x,y,m=map(int,input().split()) red=[set() for i in range(y)] blue=[-1]*x cnt=[0]*x for i in range(m): u,v=map(int,input().split()) u-=1 v-=1 red[v].add(u) blue[u]=max(blue[u],v) for i in range(y): for j in red[i]: cnt[j]^=1 last=[[] for i in range(y)] for i in range(x): last[blue[i]].append(i) use=[0]*y odd=[0]*x for i in range(y): diff=[0,0] for j in last[i]: if cnt[j]==0: diff[odd[j]]+=1 if diff[0]>diff[1]: use[i]=1 for j in red[i]: odd[j]^=1 if sum(use)+sum(odd)<(x+y+1)//2: for i in range(y): use[i]^=1 for 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]])