Pagini recente » Cod sursa (job #1761944) | Arhiva de probleme | Cod sursa (job #573674) | Profil Rares_Liviu | Cod sursa (job #1323544)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int cmin=1001*10002,e,c,nrg,wmin,s1[5001],s2[5001];
void cons(int s1[],int s2[])
{
for(int i=1;i<=wmin;i++)
s2[i]=0;
if(e>=wmin)
{
if(cmin>c) cmin=c;
}
else
s2[e]=c;
for(int i=1;i<=wmin;i++)
if(s1[i]!=0)
{
if(i+e>=wmin)
{
if(s1[i]+c<cmin) cmin=s1[i]+c;
}
else
if(s2[i+e]>s1[i]+c || s2[i+e]==0) s2[i+e]=s1[i]+c;
if(s2[i]>s1[i] || s2[i]==0) s2[i]=s1[i];
}
}
int main()
{
fin>>nrg>>wmin;
for(int i=1;i<=nrg;i++)
{
fin>>e>>c;
if(i%2==1)
cons(s2,s1);
else
cons(s1,s2);
}
if(cmin==1001*10002)
fout<<-1;
else
fout<<cmin<<'\n';
return 0;
}