結果
| 問題 | No.3602 Queen XOR Score |
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2026-07-24 23:57:06 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,795 bytes |
| 記録 | |
| コンパイル時間 | 323 ms |
| コンパイル使用メモリ | 96,620 KB |
| 実行使用メモリ | 88,592 KB |
| 最終ジャッジ日時 | 2026-07-24 23:57:15 |
| 合計ジャッジ時間 | 6,163 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 5 WA * 24 |
ソースコード
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))
if not base:
for x in query:
if x == 0:
print(0)
print(1, 1)
else:
print(-1)
exit()
B = [(base[i], XOR[i], IDX[i]) for i in range(len(base))]
B.sort(key=lambda x:x[0], reverse=True)
base, XOR, IDX = 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:
if IDX[i][0]%2 == 0:
C.append((IDX[i], IDX[i][0]*W+IDX[i][1]))
else:
C.append((IDX[i], IDX[i][0]*W+(W-1-IDX[i][1])))
C.sort(key=lambda x:x[1])
if X != 0:
print(-1)
continue
odd = set()
even = set()
for i, c in enumerate(C):
if i%2 == 0:
odd.add(c[0])
else:
even.add(c[0])
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