Pagini recente » Cod sursa (job #1858702) | Cod sursa (job #367438) | Cod sursa (job #2222536) | Cod sursa (job #2022841) | Cod sursa (job #1503128)
#include <iostream>
#include <fstream>
#define maxim 0x7fff
#define emax 6002
#define nmax 1002
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,w,i,e[nmax],p[nmax];
int ve[emax],no[emax];
int main()
{int n,w,i,en;
fin>>n;
fin>>w;
for(i=1;i<=n;i++)
{fin>>e[i]>>p[i];}
for(i=1;i<=emax;i++)
ve[i]=maxim;
ve[0]=0;
for(i=1;i<=n;i++)
{
for(en=1;en<=emax;en++)
{no[en]=ve[en];
if(e[i] <= en && ve[en-e[i]]!=maxim)
if(no[en] > ve[en-e[i]] + p[i])
no[en]=ve[en-e[i]] + p[i];
}
for(en=0;en<=emax;en++)
ve[en]=no[en];
}
int minim = maxim;
for(i=w;i<=emax;i++)
if(minim>ve[i])minim=ve[i];
if(minim==maxim) fout<<-1;
else fout<<minim;
}