Pagini recente » Cod sursa (job #1212961) | Cod sursa (job #2670179) | Cod sursa (job #277924) | Cod sursa (job #2374930) | Cod sursa (job #499263)
Cod sursa(job #499263)
#include<vector>
#include<cstdio>
#include<fstream>
#include<algorithm>
using namespace std;
#define m 1010
struct enrg {
int a;
int b;
double c;
};
class compara{
public:
bool operator () (enrg x, enrg y) const
{
if(x.c>y.c) return 1;
if(x.c<y.c) return 0;
if(x.b<y.b) return 1;
if(x.b>y.b) return 0;
if(x.a>y.a) return 1;
return 0;
}
};
enrg v[m];
int n,w;
int solve ()
{
int i=1,sol=0;
for(;i<=n&&w>0;++i){
sol+=v[i].b;
w-=v[i].a;
}
if(w<=0)
return sol;
return -1;
}
int main ()
{
ifstream in ("energii.in");
in>>n>>w;
for(int i=1;i<=n;++i){
in>>v[i].a>>v[i].b;
v[i].c=(double)v[i].a/v[i].b;
}
in.close();
sort(v+1,v+n+1, compara() );
freopen ("energii.out","w",stdout);
printf("%d\n",solve());
return 0;}