結果
| 問題 | No.3602 Queen XOR Score |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-07-24 23:48:09 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,457 bytes |
| 記録 | |
| コンパイル時間 | 734 ms |
| コンパイル使用メモリ | 95,852 KB |
| 実行使用メモリ | 93,696 KB |
| 最終ジャッジ日時 | 2026-07-24 23:48:21 |
| 合計ジャッジ時間 | 7,083 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 17 WA * 10 RE * 2 |
ソースコード
H, W = map(int, input().split())
A = [list(map(int, input().split())) for _ in range(H)]
Q = int(input())
query = [int(input()) for _ in range(Q)]
base = []
XOR = []
IDX = []
temp = []
for i in range(H):
order = list(range(W))
if i%2 == 1:
order = order[::-1]
for j in order:
temp.append((i, j))
a = A[i][j]
xor = 1<<len(base)
for k, b in enumerate(base):
if min(a, a^b) < a:
a ^= b
xor ^= XOR[k]
if a:
base.append(a)
XOR.append(xor)
IDX.append((i, j))
B = [(base[i], XOR[i]) for i in range(len(base))]
B.sort(key=lambda x:x[0], reverse=True)
base, XOR = map(list, zip(*B))
temp2 = temp[::-1][1:]
temp2.insert(1, temp[-1])
for X in query:
C = []
xor = 0
for i, b in enumerate(base):
top = b.bit_length()-1
if 1<<top & X:
X ^= b
xor ^= XOR[i]
for i in range(len(IDX)):
if 1<<i & xor:
C.append(IDX[i])
if X != 0:
print(-1)
continue
odd = set()
even = set()
for i, c in enumerate(C):
if i%2 == 0:
odd.add(c)
else:
even.add(c)
t1, t2 = [], []
for t in temp:
if t not in odd:
t1.append(t)
for t in temp2:
if t not in even:
t2.append(t)
ans = t1+t2
print(len(ans)-1)
for h, w in ans:
print(h+1, w+1)
detteiuu