結果
問題 | No.2900 Star Divine |
ユーザー | hirayuu_yc |
提出日時 | 2024-10-16 18:43:15 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 751 bytes |
コンパイル時間 | 367 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 89,324 KB |
最終ジャッジ日時 | 2024-10-16 18:43:19 |
合計ジャッジ時間 | 4,301 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 122 ms
76,544 KB |
testcase_01 | WA | - |
testcase_02 | WA | - |
testcase_03 | WA | - |
testcase_04 | WA | - |
testcase_05 | AC | 258 ms
85,888 KB |
testcase_06 | WA | - |
testcase_07 | WA | - |
testcase_08 | AC | 157 ms
86,016 KB |
testcase_09 | AC | 211 ms
77,312 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) cnt[u]^=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]])