Pagini recente » Cod sursa (job #2900806) | Cod sursa (job #1102462) | Cod sursa (job #1055279) | Cod sursa (job #3153090) | Cod sursa (job #2403383)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct ura{
int e;
int c;
};
bool cmp(ura a,ura b){
if(a.c*b.e<a.e*b.c)
return true;
return false;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
ura v[1001];
int n,s,cm=0,i,cmin=99999999,cinc,inc;
cin>>n;
cin>>s;
for(i=1;i<=n;i++)
cin>>v[i].e>>v[i].c;
sort(v+1,v+n,cmp);
inc=1;
cinc=1;
for(i=1;i<=n && s>0;i++){
s-=v[i].e;
cm+=v[i].c;
if(s<0){
if(cm<cmin)
cmin=cm;
cinc=inc;
while(s<=0 && cinc<=i){
s+=v[cinc].e;
cm-=v[cinc].c;
cinc++;
}
inc=cinc;
if(cm<cmin && s==0)
cmin=cm;
}
}
if(cmin==99999999)
cout<<-1;
else
cout<<cmin;
return 0;
}