結果
| 問題 |
No.107 モンスター
|
| コンテスト | |
| ユーザー |
6soukiti29
|
| 提出日時 | 2017-08-23 22:26:58 |
| 言語 | Nim (2.2.0) |
| 結果 |
AC
|
| 実行時間 | 5 ms / 5,000 ms |
| コード長 | 713 bytes |
| コンパイル時間 | 3,294 ms |
| コンパイル使用メモリ | 66,176 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-30 02:59:51 |
| 合計ジャッジ時間 | 4,069 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 21 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 26) Warning: imported and not used: 'math' [UnusedImport]
ソースコード
import sequtils,strutils,math,algorithm
type
yuusha = tuple[maxhp, hp : int]
var
N = stdin.readline.parseInt
A = stdin.readline.split.map(parseInt)
hp = 100
maxhp = 100
dp : array[1 shl 16, yuusha]
A.sort(system.cmp)
dp[0] = (100,100)
for i in 0..<(1 shl N):
if dp[i].hp <= 0:
continue
for k in 0..<N:
if (i and (1 shl k)) == 0:
var p = (i + (1 shl k))
if A[k] < 0:
dp[p].hp = max(dp[i].hp + A[k], dp[p].hp)
dp[p].maxhp = dp[i].maxhp + 100
else:
dp[p].maxhp = dp[i].maxhp
dp[p].hp = min(max(dp[i].hp + A[k], dp[p].hp), dp[i].maxhp)
echo dp[(1 shl N) - 1].hp
6soukiti29