Cod sursa(job #362280)
#include <cstdio>
struct Generator{
int p,c;
float e;
};
int main(){
freopen("energii.in","rt",stdin);
freopen("energii.out","wt",stdout);
int n,min,ct,ctc;
scanf("%d%d",&n,&min);
int i,j;
Generator g[10000],aux;
for(i=0;i<n;i++){
scanf("%d%d",&g[i].p,&g[i].c);
g[i].e=(float)g[i].c/g[i].p;
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(g[j].e>g[i].e){
aux=g[j];
g[j]=g[i];
g[i]=aux;
}
ct=0;ctc=0;
for(i=0;i<n&&ct<=min;i++){
ctc+=g[i].c;
ct+=g[i].p;
}
if(i<n)
printf("-1");
else{
for(i--;i>=0;i--){
if(ct-g[i].p>=min){
ct-=g[i].p;
ctc-=g[i].c;
}
}
printf("%d",ctc);
}
return 0;
}