Pagini recente » Cod sursa (job #162010) | Cod sursa (job #101061) | Cod sursa (job #2963330) | Cod sursa (job #170715) | Cod sursa (job #548516)
Cod sursa(job #548516)
#include<stdio.h>
using namespace std;
FILE*in=fopen("energii.in","r");
FILE*out=fopen("energii.out","w");
int i,j,g;
long double b,a,s,m,w,total;
long double e;
typedef struct generator
{
long double a; //cant
long double b; //pret
long double e;
};
generator v[1003];
int main()
{
fscanf(in,"%d%lf",&g,&w);
for(i=0;i<g;i++)
{
fscanf(in,"%lf%lf",&v[i].a,&v[i].b);
total+=v[i].a;
v[i].e=(long double)v[i].a/v[i].b;
}
if(total<w)
{
fprintf(out,"-1");
return 0;
}
for(i=0;i<g-1;i++)
for(j=i+1;j<g;j++)
if(v[i].e<v[j].e)
{
v[1003]=v[i];
v[i]=v[j];
v[j]=v[1003];
}
i=0;
while(w>0 && i<g)
{
w=w-v[i].a;
s=s+v[i].b;
i++;
}
fprintf(out,"%lf",s);
fclose(in);
fclose(out);
return 0;
}