結果
| 問題 | No.943 取り調べ |
| コンテスト | |
| ユーザー |
rlangevin
|
| 提出日時 | 2023-02-10 08:54:36 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 203 ms / 1,206 ms |
| コード長 | 655 bytes |
| 記録 | |
| コンパイル時間 | 145 ms |
| コンパイル使用メモリ | 85,696 KB |
| 実行使用メモリ | 80,896 KB |
| 最終ジャッジ日時 | 2026-03-28 21:01:09 |
| 合計ジャッジ時間 | 2,836 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
N = int(input())
X = []
for i in range(N):
x = list(map(int, input().split()))
now = 0
for j in range(N):
now += x[j] * (1 << j)
X.append(now)
A = list(map(int, input().split()))
ans = 10 ** 18
N2 = 1 << N
for s in range(N2):
now = s
for i in range(N):
pre = now
for j in range(N):
if (now >> j) & 1:
continue
if X[j] == (now & X[j]):
now += 1 << j
if pre == now:
break
if now == (1 << N) - 1:
v = 0
for i in range(N):
if (s >> i) & 1:
v += A[i]
ans = min(ans, v)
print(ans)
rlangevin