Pagini recente » Cod sursa (job #3124219) | Cod sursa (job #1652637) | Cod sursa (job #2959183) | Cod sursa (job #1541824) | Cod sursa (job #499262)
Cod sursa(job #499262)
#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.a<y.a) return 1;
if(x.a>y.a) return 0;
if(x.b>y.b) 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() );
for(int i=1;i<=n;++i)
printf("%d %d %lf\n",v[i].a,v[i].b,v[i].c);
freopen ("energii.out","w",stdout);
printf("%d\n",solve());
return 0;}