Cod sursa(job #1545570)
Utilizator | Data | 6 decembrie 2015 20:54:00 | |
---|---|---|---|
Problema | Energii | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <stdio.h>
#define INF 1073741824
using namespace std;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int g,w,i,j,a;
int e[1002],c[1002],cmin[15005];
scanf("%d%d",&g,&w);
for(i=0;i<g;i++)
scanf("%d%d",e+i,c+i);
for(i=1;i<15005;i++)
cmin[i]=INF;
cmin[0]=0;
for(i=0;i<g;i++)
{
for(j=w+e[i];j>=0;j--)
{
if(cmin[j-e[i]]!=INF)
{
a=cmin[j-e[i]]+c[i];
if(j>=w&&a<cmin[w]) cmin[w]=a;
else if(a<cmin[j]) cmin[j]=a;
}
}
}
printf("%d",cmin[w]);
return 0;
}