Pagini recente » Borderou de evaluare (job #564206) | Cod sursa (job #716053)
Cod sursa(job #716053)
#include <fstream>
using namespace std;
#define dim 1010
#define inf 0x3f3f3f3f
struct energie
{
int x, y;
}v[dim];
int sol[dim*10];
int main()
{
ifstream fin("energii.in");
ofstream fout("energii.out");
int g, w, n,i;
float a, b;
fin>>g >>w;
n=g;
for( ; g;--g)
fin>>v[g].x >>v[g].y;
for(i=1;i<=dim*10;++i)
sol[i]=inf;
int maxim=0;
for(i=1;i<=n;++i)
{
for(int j=maxim;j>=0;--j)
if(sol[j]!=inf)
if(j+v[i].x<=dim*10)
sol[j+v[i].x]=min(sol[j+v[i].x],v[i].y+sol[j]);
maxim=maxim+v[i].x;
maxim=min(maxim,dim*10-1);
}
int raspuns=inf;
for(i=w;i<=dim*10;++i)
if(sol[i]!=inf)
raspuns=min(raspuns,sol[i]);
if(raspuns==inf)
fout<<"-1";
else
fout<<raspuns;
return 0;
}