Submission #27848


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
honey, orange = map(int, input().split())
kind = []
w = []
hate = []
max_in = []
for i in range(5):
kind_i, w_i, hate_i, max_in_i = input().split()
kind.append(kind_i)
w.append(int(w_i))
hate.append(int(hate_i))
max_in.append(int(max_in_i))
infinity = 1000000000
dp = [[[infinity] * (orange + 1) for _ in range(honey + 1)] for _ in range(6)]
dp[0][0][0] = 0
for i in range(5):
for picked in range(w[i] + 1):
dissatisfaction = 0 if picked == w[i] else 4 << (w[i] - picked + hate[i])
if dissatisfaction > max_in[i]:
continue
dx = 0
dy = 0
if kind[i] == 'honey':
dx = picked
else:
dy = picked
for j in range(dx, honey + 1):
for k in range(dy, orange + 1):
dp[i + 1][j][k] = min(
dp[i + 1][j][k],
dp[i][j - dx][k - dy] + dissatisfaction)
minimum = infinity
for j in range(honey + 1):
for k in range(orange + 1):
minimum = min(minimum, dp[5][j][k])
if minimum == infinity:
print('Hello!')
else:
print(minimum)

ステータス

項目 データ
問題 0015 - あふたぬーんてぃー
ユーザー名 KirikaYuumura
投稿日時 2017-10-25 15:12:40
言語 Python3
状態 Accepted
得点 30
ソースコード長 1155 Byte
最大実行時間 67 ms
最大メモリ使用量 4100 KB

セット

セット 得点 Cases
1 ALL 30 / 30 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
Alice_in1.txt AC 67 ms 4100 KB
1
Alice_in2.txt AC 41 ms 4036 KB
1
Alice_in3.txt AC 37 ms 4092 KB
1
Alice_in4.txt AC 38 ms 4028 KB
1
Alice_in5.txt AC 39 ms 4088 KB
1