結果
| 問題 |
No.943 取り調べ
|
| コンテスト | |
| ユーザー |
rlangevin
|
| 提出日時 | 2023-02-10 08:54:36 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 288 ms / 1,206 ms |
| コード長 | 655 bytes |
| コンパイル時間 | 162 ms |
| コンパイル使用メモリ | 82,024 KB |
| 実行使用メモリ | 75,964 KB |
| 最終ジャッジ日時 | 2024-07-07 05:57:08 |
| 合計ジャッジ時間 | 2,792 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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