結果
| 問題 |
No.2895 Zero XOR Subset
|
| コンテスト | |
| ユーザー |
ntuda
|
| 提出日時 | 2024-09-26 21:32:33 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,366 bytes |
| コンパイル時間 | 225 ms |
| コンパイル使用メモリ | 82,048 KB |
| 実行使用メモリ | 289,544 KB |
| 最終ジャッジ日時 | 2024-09-26 21:32:38 |
| 合計ジャッジ時間 | 4,470 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | TLE * 1 -- * 34 |
ソースコード
'''
from random import randint
N = 60
A = set()
while len(A) < N:
A.add(randint(1, (1<<(N-1))-1))
A = sorted(list(A))
'''
N = int(input())
A = list(map(int,input().split()))
tmp = 0
for a in A:
tmp |= a
A2 = []
for i in range(N):
A2.append([A[i],[i]])
def f():
tmp = 1
for i in range(N - 1):
f = True
cmp = -1
for j in range(N):
if f:
if A2[j][0] & tmp:
f = False
cmp = A2[j][0]
idx = A2[j][1]
else:
if A2[j][0] & cmp & tmp:
A2[j][0] ^= cmp
tmp2 = A2[j][1] + idx
tmp2.sort()
tmp3 = []
n = len(tmp2)
i = 0
while i < n:
if i < n - 1 and tmp2[i] == tmp2[i+1]:
i += 2
else:
tmp3.append(tmp2[i])
i += 1
A2[j][1] = tmp3
tmp <<= 1
i = 0
while i < 20 and A2[0][0] > 0:
f()
A2.sort()
i += 1
#print(A)
#print(A2[0])
#print("cnt", i)
tmp = 0
for i in A2[0][1]:
tmp ^= A[i]
#print(tmp)
#print()
if A2[0][0] == 0:
print(len(A2[0][1]))
print(*[i + 1 for i in A2[0][1]])
else:
print(-1)
ntuda