Pagini recente » Cod sursa (job #2420962) | Cod sursa (job #6662) | Cod sursa (job #680272) | Cod sursa (job #916668) | Cod sursa (job #3290321)
#include <fstream>
using namespace std;
#define MAX_G 1001
#define MAX_E 10001
int e[MAX_G], c[MAX_G], dp[MAX_E][MAX_G];
int main(){
ifstream cin( "energii.in" );
ofstream cout( "energii.out" );
int g, w, i, j, ans;
cin >> g >> w;
for( i = 0; i < g; i++ ){
cin >> e[i] >> c[i];
}
for( i = 1; i < MAX_E; i++ ){
for( j = 0; j <= g; j++ )
dp[i][j] = 2100000000;
}
ans = 2100000000;
for( i = 1; i < MAX_E; i++ ){
for( j = 1; j <= g; j++ ){
if( i >= e[j] )
dp[i][j] = min( dp[i][j - 1], dp[i - e[j]][j - 1] + c[j] );
else
dp[i][j] = dp[i][j - 1];
if( i >= w && dp[i][j] < ans ){
ans = dp[i][j];
// printf( "%d %d %d\n" , i, j, ans);
}
}
//printf( "%d\n" , i);
}
if( ans == 2100000000 )
cout << "-1";
else
cout << ans;
return 0;
}