Pagini recente » Cod sursa (job #3184104) | Cod sursa (job #2908358) | Cod sursa (job #1078180) | Cod sursa (job #2813973) | Cod sursa (job #4368)
Cod sursa(job #4368)
#include <fstream.h>
#include <iostream.h>
long v[10001],C[1001],E[1001];
int main()
{
int G,W,i,j;
long sum=0;
ifstream f("energii.in");
ofstream g("energii.out");
f>>G>>W;
for(i=1;i<=G;i++)
{
f>>E[i];
f>>C[i];
sum+=E[i];
}
f.close();
if(sum<W) {g<<-1; g.close(); return 0;}
for(i=1;i<=G;i++)
for(j=W;j>=0;j--)
if((v[j]!=0 ||j==0)&& v[j+E[i]]==0)
v[j+E[i]]=C[i]+v[j];
else
if((v[j]!=0 ||j==0)&& v[j+E[i]]!=0 && v[j+E[i]]>C[i]+v[j])
v[j+E[i]]=C[i]+v[j];
long minim;
/* i=W;
while(v[i]==0) i++;
minim=v[i];
for(j=i+1;j<10001;j++)
if(v[j]<minim&&v[j]!=0)
minim=v[j];*/
minim=v[W];
for(j=W+1;j<10001;j++)
if(v[j]<minim)
minim=v[j];
g<<minim;
g.close();
return 0;
}