Cod sursa(job #881894)
| Utilizator | Data | 18 februarie 2013 18:54:39 | |
|---|---|---|---|
| Problema | Energii | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include<stdio.h>
long long i,j,v[60000],k,s,g,w,ok,min,y,x;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%lld%lld",&g,&w);
for(i=1;i<=15000;i++)
v[i]=1000000000;
v[0]=0;
for(i=1;i<=g;i++)
{
scanf("%lld%lld",&x,&y);
for(j=w;j>=0;j--)
if(v[j] != 1000000000 && v[j]+y < v[j+x])
v[j+x]=v[j]+y;
}min=1000000001;
for(i=w;i<=15000;i++)
{
if(v[i]<min)
{
min=v[i];
}
}
if(min==1000000001)
printf("%d",-1);
else
printf("%lld",min);
return 0;
}