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
|