Pagini recente » Cod sursa (job #2631931) | Cod sursa (job #23840) | Cod sursa (job #414528) | Cod sursa (job #632953) | Cod sursa (job #314872)
Cod sursa(job #314872)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
typedef struct
{
float e,c;
float p;
} Centrala;
Centrala C[1001];
int g;
float s,w;
void read()
{
int i;
fin>>g>>w;
for(i=1;i<=g;i++)
{
fin>>C[i].e>>C[i].c;
C[i].p=C[i].e/C[i].c;
}
}
void swap(Centrala &x,Centrala &y)
{
Centrala ax=x;
x=y;
y=ax;
}
void qsort(int l,int r)
{
int i,j;
j=l-1;
for(i=l;i<=r;i++)
if(C[i].p>=C[r].p)
swap(C[i],C[++j]);
if(l<j-1)
qsort(l,j-1);
if(r>j+1)
qsort(j+1,r);
}
void solve()
{
qsort(1,g);
for(int i=1;i<=g;i++)
{
s+=C[i].c;
w-=C[i].e;
if(w<=0)
{
fout<<s;
return;
}
}
fout<<"-1";
}
int main()
{
read();
solve();
return 0;
}