Cod sursa(job #476847)
| Utilizator | Data | 12 august 2010 14:47:45 | |
|---|---|---|---|
| Problema | Energii | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <cstdio>
int main()
{
int j,n,x,y,i,m,min=23442242;
long long c[6001];
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=m;++i) c[i]=m;
for (i=1;i<=n;++i)
{
scanf("%d %d",&x,&y);
for (j=m-1;j>1;--j)
if (j+x>m) {if (c[m]>c[j]+y) c[m]=c[j]+y;} else
if (c[j+x]>c[j]+y) c[j+x]=c[j]+y;
if (c[x]>y) c[x]=y;
}
if (c[m]==min) printf("-1"); else
printf("%d",c[m]);
return 0;}
