結果
| 問題 | 
                            No.943 取り調べ
                             | 
                    
| コンテスト | |
| ユーザー | 
                             TakoKurage
                         | 
                    
| 提出日時 | 2019-12-16 11:20:01 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 708 ms / 1,206 ms | 
| コード長 | 440 bytes | 
| コンパイル時間 | 274 ms | 
| コンパイル使用メモリ | 82,332 KB | 
| 実行使用メモリ | 77,688 KB | 
| 最終ジャッジ日時 | 2024-07-02 19:41:38 | 
| 合計ジャッジ時間 | 6,170 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 24 | 
ソースコード
N = int(input())
X = [int(input().replace(" ", "")[::-1], 2) for _ in range(N)]
A = [int(i) for i in input().split()]
complete = 2 ** N - 1
ans = float("inf")
for state in range(2 ** N):
    cand = sum(a for i, a in enumerate(A) if state >> i & 1)
    for _ in range(N):
        for i, x in enumerate(X):
            if state & x == x:
                state |= 1 << i
    if state == complete:
        ans = min(ans, cand)
print(ans)
            
            
            
        
            
TakoKurage