Cod sursa(job #226556)
| Utilizator | Data | 1 decembrie 2008 22:16:21 | |
|---|---|---|---|
| Problema | Energii | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<fstream.h>
struct gen{int e,c;};
gen a[1002];
long i,n,j,v[5002],w;
ifstream fin("energii.in");
ofstream fout("energii.out");
int main()
{ fin>>n>>w;
for(i=1;i<=n;i++)
fin>>a[i].e>>a[i].c;
for(i=1;i<=w;i++)
v[i]=-1;
for(i=1;i<=n;i++)
for(j=w-1;j>=0;j--)
if(v[j]!=-1)
{ if(j+a[i].e>=w&&((v[j]+a[i].c<v[w]&&v[w]!=-1)||(v[j]+a[i].c>v[w]&&v[w]==-1)))
v[w]=v[j]+a[i].c;
if(j+a[i].e<w&&v[j]+a[i].c<v[j+a[i].e])
v[j+a[i].e]=v[j]+a[i].c;
}
fout<<v[w];
return 0;
}