Pagini recente » Cod sursa (job #1017191) | Cod sursa (job #2474822) | Cod sursa (job #217788) | Cod sursa (job #657586) | Cod sursa (job #2201410)
#include<fstream>
#include<iostream>
#include<cmath>
#include<iomanip>
#define MAX 1e9
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
//#define fin cin
//#define fout cout
int dp[1002][10002];
int main(){
int generatoare, necesar, cost[1002], energie[1002];
fin >> generatoare >> necesar;
for( int i = 1 ; i <= generatoare ; ++i ){
fin >> energie[i] >> cost[i];
}
//dp[1][2] = 4;
for( int i = 0 ; i <= generatoare ; ++i ){
for( int cw = 0 ; cw <= necesar ; ++cw ){
dp[i][cw] = MAX;
}
}
for( int i = 1 ; i <= generatoare ; ++i ){
for( int cw = 0 ; cw <= necesar ; ++cw ){
dp[i][cw] = dp[i-1][cw];
if( energie[i] >= cw ){
dp[i][cw] = min(dp[i][cw], cost[i]);
}else dp[i][cw] = min(dp[i][cw], dp[i-1][cw - energie[i]] + cost[i]);
}
}
if( dp[generatoare][necesar] == 1e9 ) fout << -1;
else fout << dp[generatoare][necesar];
return 0;
}