Cod sursa(job #712421)
| Utilizator | Data | 13 martie 2012 14:10:01 | |
|---|---|---|---|
| Problema | Energii | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.43 kb |
#include <fstream>
int v[5005],i,e,c,n,m,nm;
using namespace std;
int main ()
{ifstream f("energii.in");
ofstream g("energii.out");
nm=0;
f>>m>>n;
while(m)
{f>>e>>c;
for(i=nm;i>=0;i--)
if(v[i]||!i)
if(i+e<=n)
if(v[i+e])
v[i+e]=min(v[i]+c,v[i+e]);
else
v[i+e]=v[i]+c;
else
if(v[n])
v[n]=min(v[i]+c,v[n]);
else
v[n]=v[i]+c;
nm=min(nm+e,n);
m--;}
if(v[n])
g<<v[n];
else
g<<-1;
f.close(); g.close();
return 0;
}
