Pagini recente » Cod sursa (job #1281545) | Cod sursa (job #404504) | Cod sursa (job #152983) | Cod sursa (job #1165192) | Cod sursa (job #2129200)
#include <fstream>
#include <algorithm>
using namespace std;
int ma[1002][5002];
struct punct
{
int e,c;
}v[1002];
int main()
{
int g,w,i,j,sol;
int s,c;
ifstream in("energii.in");
ofstream out("energii.out");
in>>g>>w;
s=c=0;
for(i=1;i<=g;i++)
{
in>>v[i].e>>v[i].c;
s+=v[i].e;
c+=v[i].c;
}
if(s<w)
{
out<<-1;
}
else
{
if(s==w)
{
out<<c;
}
else
{
sol=s-w;
for(i=1;i<=g;i++)
{
for(j=1;j<=sol;j++)
{
if(v[i].e<=j)
{
ma[i][j]=max(ma[i-1][j-v[i].e]+v[i].c,ma[i-1][j]);
}
else
{
ma[i][j]=ma[i-1][j];
}
}
}
out<<c-ma[g][sol];
}
}
return 0;
}