Cod sursa(job #2223660)
| Utilizator | Data | 20 iulie 2018 21:48:00 | |
|---|---|---|---|
| Problema | Energii | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <cstdio>
using namespace std;
int i,j,g,w,d[5005],ok,e,c;
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
ok=d[0]=0;
scanf("%d%d",&g,&w);
for(i=1;i<=w;i++)
d[i]=2100000000;
for(i=1;i<=g;i++)
{
scanf("%d%d",&e,&c);
for(j=w;j>=0;j--)
if( d[j]!=-1 && d[j]+c < d[j+e] )
{
if(j+e>w)
d[w]=d[j]+c;
else
d[j+e]=d[j]+c;
}
}
if(d[w]==2100000000)
printf("-1");
else
printf("%d",d[w]);
return 0;
}
