Pagini recente » Cod sursa (job #329811) | Cod sursa (job #2701870) | Cod sursa (job #2374198) | Cod sursa (job #2739835) | Cod sursa (job #2615226)
#include<fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int v[50000001], e[1001], c[1001];
int main()
{
int g, w, i, j, minim, se, sc;
cin>>g>>w;
sc=0;
se=0;
for(i=1; i<=g; i++)
{
cin>>e[i]>>c[i];
if(se <= w)
{
se+=e[i];
sc+=c[i];
}
}
//cout<<se<<" "<<sc;
//cout<<s<<'\n';
for(i=1; i<=g; i++)
for(j=sc-c[i]; j>=0; j--)
if(v[j]+e[i] > v[j+c[i]] && v[j] != 0)
v[j+c[i]]=v[j]+e[i];
else if(j == 0 && v[j]+e[i] > v[j+c[i]])
v[j+c[i]]=v[j]+e[i];
//for(i=1; i<=s; i++)
// cout<<v[i]<<" ";
//cout<<'\n';
minim=10000001;
for(i=sc; i>=0; i--)
if(v[i] >= w)
minim=i;
if(minim == 10000001)
cout<<"-1 ";
else
cout<<minim;
return 0;
}