Pagini recente » Cod sursa (job #311698) | Cod sursa (job #1233671) | Cod sursa (job #514751) | Cod sursa (job #1479271) | Cod sursa (job #879612)
Cod sursa(job #879612)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
#define NMAX 1005
#define NMAX2 11000000
ofstream fout("energii.out");
int n,W,profit[NMAX2],sum,sum2;
struct data{
int power,cost;
};
data v[NMAX];
void read()
{
int i;
fin>>n>>W;
for(i=1;i<=n;i++)
{
fin>>v[i].power>>v[i].cost;
sum+=v[i].cost;
sum2+=v[i].power;
}
}
int main()
{
read();
if(sum2<W)
{
fout<<-1;
return 0;
}
int i,j;
for(i=1;i<=n;i++)
{
for(j=sum-v[i].cost;j;j--)
{
if(profit[j] && profit[j]+v[i].power > profit[j+v[i].cost])
{
profit[j+v[i].cost] = profit[j] + v[i].power;
}
}
if(v[i].power > profit[v[i].cost])
profit[v[i].cost] = v[i].power;
}
for(i=1;i<=NMAX2;i++)
{
//fout<<profit[i]<<endl;
//fout<<W;
if(profit[i]>=W)
{
fout<<i;
return 0;
}
}
}