結果
| 問題 |
No.1421 国勢調査 (Hard)
|
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2025-11-20 01:02:57 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 150 ms / 2,000 ms |
| コード長 | 904 bytes |
| コンパイル時間 | 528 ms |
| コンパイル使用メモリ | 82,320 KB |
| 実行使用メモリ | 77,672 KB |
| 最終ジャッジ日時 | 2025-11-20 01:03:02 |
| 合計ジャッジ時間 | 4,888 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 30 |
ソースコード
N, M = map(int, input().split())
A, B, Y = [], [], []
for _ in range(M):
A.append(int(input()))
C = list(map(int, input().split()))
bit = 0
for c in C:
bit |= 1<<(c-1)
B.append(bit)
Y.append(int(input()))
def add_base(bit, X):
for i, b in enumerate(base):
if bit^b < bit:
bit ^= b
X ^= xor[i]
if bit:
base.append(bit)
xor.append(X)
elif X != 0:
return False
return True
def confirm_base(bit):
sbit = bit
X = 0
for i, b in enumerate(base):
if bit^b < bit:
bit ^= b
X ^= xor[i]
if bit:
base.append(sbit)
xor.append(0)
return 0
else:
return X
base = []
xor = []
for i in range(M):
f = add_base(B[i], Y[i])
if not f:
exit(print(-1))
ans = [confirm_base(1<<i) for i in range(N)]
print(*ans, sep="\n")
detteiuu