結果
| 問題 | 
                            No.1360 [Zelkova 4th Tune] 協和音
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2021-01-22 22:38:54 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 247 ms / 2,000 ms | 
| コード長 | 1,008 bytes | 
| コンパイル時間 | 553 ms | 
| コンパイル使用メモリ | 81,920 KB | 
| 実行使用メモリ | 76,416 KB | 
| 最終ジャッジ日時 | 2024-12-28 03:37:46 | 
| 合計ジャッジ時間 | 9,917 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 47 | 
ソースコード
import sys
import math
import collections
# sys.setrecursionlimit(10000001)
INF = 10 ** 20
# MOD = 10 ** 9 + 7
MOD = 998244353
def ni(): return int(sys.stdin.buffer.readline())
def ns(): return map(int, sys.stdin.buffer.readline().split())
def na(): return list(map(int, sys.stdin.buffer.readline().split()))
def na1(): return list(map(lambda x: int(x)-1, sys.stdin.buffer.readline().split()))
# ===CODE===
def main():
    n = ni()
    a = na()
    b = [na() for _ in range(n)]
    lim = pow(2, n)
    ans = -INF
    ansc = []
    for i in range(lim):
        v = i
        res = 0
        used = []
        for j in range(n):
            if v >> j & 1:
                res += a[j]
                for ui in used:
                    res += b[j][ui]
                used.append(j)
        if ans < res and len(used) > 0:
            ans = max(ans, res)
            ansc = used
    for i in range(len(ansc)):
        ansc[i] += 1
    print(ans)
    print(*ansc)
if __name__ == '__main__':
    main()