Pagini recente » Cod sursa (job #1929400) | Cod sursa (job #2522985) | Cod sursa (job #2909465) | Cod sursa (job #2618441) | Cod sursa (job #1219603)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
long q,w,i,s,d,j;
long dp[2][5005];
long cost,ener;
const long def = 1 << 30;
void Reset(long d){
for(long i= 0;i<=w;i++) dp[d][i] = def;
}
int main()
{
fin >> q >> w;
s=0; d=1;
dp[s][0] = 0;
for(i=1;i<=w;i++) dp[s][i] = def;
for(i=1;i<=q;i++){
fin >> ener >> cost;
Reset(d);
for(j=w;j>=0;j--){
if(j-ener < 0) {dp[d][j] = dp[s][j];continue;}
dp[d][j] = min(dp[d][j],dp[s][j-ener]+cost);
}
s ^= 1; d ^= 1;
}
if(dp[s][w] == def) dp[s][w] = -1;
fout << dp[s][w];
return 0;
}