Mai intai trebuie sa te autentifici.
Cod sursa(job #3290319)
Utilizator | Data | 30 martie 2025 11:56:21 | |
---|---|---|---|
Problema | Energii | Scor | 60 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.78 kb |
#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);
}
cout << ans;
return 0;
}