Submission #1595589
Source Code Expand
#include <iostream> using namespace std; const int INF = 10000000; int main(){ int N,Ma,Mb; int a[41],b[41],c[41]; int dp[41][411][411]; for(int i=0;i<41;i++){ for(int j=0;j<411;j++){ for(int k=0;k<411;k++){ dp[i][j][k] = INF; } } } dp[0][0][0] = 0; cin >> N >> Ma >> Mb; for(int i=0;i<N;i++){ cin >> a[i] >> b[i] >> c[i]; } for(int i=0;i<N;i++){ for(int ca=0;ca<=410;ca++){ for(int cb=0;cb<=410;cb++){ if(dp[i][ca][cb]==INF)continue;//まだ更新されていない dp[i+1][ca][cb] = min(dp[i+1][ca][cb],dp[i][ca][cb]);//i番目の薬品を買わない場合。 //次の場所(i+1)に、次の場所で必要な金と今の場所で必要な金の最小値を入れる。 dp[i+1][ca+a[i]][cb+b[i]] = min(dp[i+1][ca+a[i]][cb+b[i]],dp[i][ca][cb]+c[i]);//i番目の薬品を買う場合 //i番目を買うと、Maにa[i]追加 Mbにb[i]追加 今の場所で必要な金と薬品iの値段(c[i]) との最小値 } } } int answer = INF; for(int ca=1;ca<=410;ca++){//比が0対 for(int cb=1;cb<=410;cb++){//0だとif文が通ってしまう。 if(ca*Mb == cb*Ma){ answer = min(answer,dp[N][ca][cb]);//dp後はdp[N](dp[i+1]の終着点)を参照すれば良い } } } if(answer == INF){//目的の比率にならなかった answer = -1; } cout << answer << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Mixing Experiment |
User | mashi6n |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 1426 Byte |
Status | AC |
Exec Time | 16 ms |
Memory | 27900 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 14 ms | 27900 KB |
sample_02.txt | AC | 10 ms | 27264 KB |
subtask_1_01.txt | AC | 11 ms | 27264 KB |
subtask_1_02.txt | AC | 10 ms | 27264 KB |
subtask_1_03.txt | AC | 11 ms | 27264 KB |
subtask_1_04.txt | AC | 11 ms | 27264 KB |
subtask_1_05.txt | AC | 12 ms | 27264 KB |
subtask_1_06.txt | AC | 12 ms | 27264 KB |
subtask_1_07.txt | AC | 12 ms | 27264 KB |
subtask_1_08.txt | AC | 13 ms | 27264 KB |
subtask_1_09.txt | AC | 14 ms | 27264 KB |
subtask_1_10.txt | AC | 15 ms | 27264 KB |
subtask_1_11.txt | AC | 16 ms | 27264 KB |
subtask_1_12.txt | AC | 16 ms | 27264 KB |
subtask_1_13.txt | AC | 16 ms | 27264 KB |
subtask_1_14.txt | AC | 16 ms | 27264 KB |
subtask_1_15.txt | AC | 16 ms | 27264 KB |
subtask_1_16.txt | AC | 16 ms | 27264 KB |
subtask_1_17.txt | AC | 16 ms | 27264 KB |
subtask_1_18.txt | AC | 16 ms | 27264 KB |