Pagini recente » Cod sursa (job #701462) | Cod sursa (job #56317) | Cod sursa (job #3185756) | Cod sursa (job #1604267) | Cod sursa (job #206305)
Cod sursa(job #206305)
#include<fstream.h>
ifstream fin("energii.in");
ofstream fout("energii.out");
unsigned long cost;
int g,w;
struct c
{
int eg,ec;
float m;
}v[1002],aux;
void citire()
{
int i;
fin>>g>>w;
for(i=0;i<g;i++)
{
fin>>v[i].eg>>v[i].ec;
v[i].m=(float)v[i].eg/v[i].ec;
}
}
void bubble_sort()
{
int ord,i;
do
{
ord=1;
for(i=0;i<g-1;i++)
if(v[i].m<v[i+1].m)
{
aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ord=0;
}
else
if(v[i].m==v[i+1].m)
if(w-v[i].eg>w-v[i+1].eg)
{
aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ord=0;
}
}while(ord==0);
}
int main()
{
citire();
int i=0;
bubble_sort();
while(w>0 && i<g)
{
w-=v[i].eg;
cost+=v[i++].ec;
}
if(w<=0)
fout<<cost<<'\n';
else fout<<"-1\n";
fout.close();
return 0;
}