結果
問題 |
No.519 アイドルユニット
|
ユーザー |
![]() |
提出日時 | 2017-07-08 09:39:21 |
言語 | Nim (2.2.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 844 bytes |
コンパイル時間 | 4,824 ms |
コンパイル使用メモリ | 67,108 KB |
実行使用メモリ | 147,548 KB |
最終ジャッジ日時 | 2024-06-30 01:36:26 |
合計ジャッジ時間 | 8,481 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | TLE * 1 -- * 33 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 26) Warning: imported and not used: 'math' [UnusedImport]
ソースコード
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]