Pagini recente » Istoria paginii utilizator/commercialgas144 | Probleme de tăietură | Cod sursa (job #2221214) | Cod sursa (job #360166) | Cod sursa (job #1771387)
using namespace std;
#include <fstream>
#include <algorithm>
#define GMAX 1005
#define WMAX 5005
#define inf 10000001
FILE *f=fopen ("energii.in","r");
ofstream g ("energii.out");
int G,W;
int E[GMAX],C[GMAX];
int D[2][WMAX];
int main()
{
int i,l=0,cw;
fscanf(f,"%d%d",&G,&W);
for(i=1; i<=G; i++)
fscanf(f,"%d%d", &E[i],&C[i]);
for(cw=1; cw<=W; cw++)
D[0][cw]=D[1][cw]=inf;
for(i=1; i<=G; i++, l=1-l)
{
for(cw=1; cw<=W; cw++)
{
D[1-l][cw]=D[l][cw];
if(E[i]<=cw)
D[1-l][cw]=min(D[1-l][cw],D[l][cw-E[i]]+C[i]);
}
if(E[i]>W) D[1-l][W]=min(D[1-l][W],C[i]);
}
if(D[l][W]==inf) g<<-1;
else g<<D[l][W];
return 0;
}