Pagini recente » Cod sursa (job #1950058) | Cod sursa (job #1369922) | Cod sursa (job #1156442) | Cod sursa (job #1899250) | Cod sursa (job #1465182)
#include<cstdio>
using namespace std;
struct gen{int e,c;};
gen v[1001];
int s[15001];
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n,emin,i,max=-1,j,min=2000000000,maxe=-1,maxj=0;
scanf("%d%d",&n,&emin);
for(i=1;i<=n;i++){
scanf("%d%d",&v[i].e,&v[i].c);
if(v[i].e>maxe)
maxe=v[i].e;
}
for(i=1;i<=n;i++){
for(j=maxj;j>=0;j--)
if(s[j]!=0||j==0)
if((s[j+v[i].e]==0||s[j]+v[i].c<s[j+v[i].e])&&j+v[i].e<=15000){
s[j+v[i].e]=s[j]+v[i].c;
if(max<j+v[i].e)
max=j+v[i].e;
}
if(maxj<emin)
maxj+=v[i].e;
}
for(i=emin;i<=max;i++)
if(s[i]<=min&&s[i]!=0)
min=s[i];
if(min==2000000000)
printf("-1");
else
printf("%d",min);
return 0;
}