Pagini recente » Cod sursa (job #437645) | Cod sursa (job #184034) | Cod sursa (job #1736403) | Cod sursa (job #771343) | Cod sursa (job #874831)
Cod sursa(job #874831)
#include<fstream>
#include<cstring>
#define maxn 1009
#define maxg 5009
#define INF 0x3f3f3f3f
using namespace std;
ofstream out("energii.out");
int n , g[maxn] , c[maxn] , bst[maxn][maxg] , G;
void read();
void rucsac();
int main()
{
read();
rucsac();
out << ( bst[n][G] == INF ? -1 : bst[n][G] );
return 0;
}
void read()
{
ifstream in("energii.in");
in >> n >> G ;
for ( int i=1 ;i<=n;i++)
in >> g[i] >> c[i];
}
void rucsac()
{
for ( int i=0 ;i<=n;i++)
for ( int j=1 ;j<=G;j++)
bst[i][j] = INF;
for ( int i=1 ; i<=n ;i++)
for ( int j = 1 ; j<=G ; j++)
{
if ( g[i] <= j )
bst[i][j] = min ( bst[i-1][j] , bst[i-1][ j - g[i] ] + c[i] );
else
bst[i][j] = min ( bst[i-1][j] , c[i] );
}
}