Pagini recente » Cod sursa (job #2073238) | Cod sursa (job #646947) | Cod sursa (job #814397) | Cod sursa (job #1460412) | Cod sursa (job #3356243)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
struct ana{
long long c;
int e;
}v[1002], car[15002];
int main()
{
int n, w, i,j, smax;
long long mini;
smax=0;
cin>>n>>w;
for(i=1;i<=15000;i++)
car[i].c=10000001;
car[0].e=1;
for(i=1;i<=n;i++)
{
cin>>v[i].e>>v[i].c;
for(j=smax;j>=0;j--)
if(car[j].e==1&&j+v[i].e<=15000)
{
car[j+v[i].e].e=1;
if(car[j].c==10000001)
car[j+v[i].e].c=v[i].c;
else
car[j+v[i].e].c=v[i].c+car[j].c;
}
if(smax+v[i].e<=15000)
smax+=v[i].e;
else smax=15000;
}
mini=10000001;
for(i=1;i<=smax;i++)
if(car[i].e==1&&i>=w) if(car[i].c<mini) mini=car[i].c;
if(mini==10000001) cout<<"-1";
else
cout<<mini;
return 0;
}