Pagini recente » Arhiva de probleme | Cod sursa (job #359262) | Cod sursa (job #2215196) | Cod sursa (job #2527768) | Cod sursa (job #712448)
Cod sursa(job #712448)
#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(nm==n)
g<<v[n];
else
g<<-1;
f.close(); g.close();
return 0;
}