結果

問題 No.519 アイドルユニット
コンテスト
ユーザー 6soukiti29
提出日時 2017-07-08 09:39:21
言語 Nim
(2.2.8)
コンパイル:
nim --nimcache=~ --hints:off -o:a.out -d:release cpp _filename_
実行:
./a.out
結果
TLE  
実行時間 -
コード長 844 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,140 ms
コンパイル使用メモリ 70,512 KB
実行使用メモリ 150,472 KB
最終ジャッジ日時 2026-03-19 18:14:42
合計ジャッジ時間 23,231 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 27 TLE * 7
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sequtils,strutils,math

proc powInt(n : int64, m : int64, k = 1_000_000_007):int64 =
    if m == 0:
        return 1
    elif m == 1:
        return (n mod k)
    if (m mod 2) == 0:
        return powInt((n*n) mod k,m div 2, k) mod k
    else:
        return (powInt((n*n) mod k,m div 2, k) * n) mod k

proc p2(i : int):int =
    return powInt(2,i).int

var
    N = stdin.readline.parseInt
    A = newSeqWith(N,newSeq[int](0))
    x : int
    B = newSeqWith(p2(N),-1)
    T : seq[int]
for n in 0..<N:
    A[n] = stdin.readline.split.map(parseInt)

T = @[]
for k in 1..<N:
    for j in 0..<k:
        x = p2(k) + p2(j)
        B[x] = A[k][j]
        T.add(x)

for i in 1..<p2(N):
    if B[i] == -1:
        continue
    for t in T:
        if (i and t) == 0:
            B[i + t] = max(B[i + t],B[i] + B[t])

echo B[p2(N) - 1]
        


0