Cod sursa(job #973174)
Utilizator | Data | 13 iulie 2013 17:17:03 | |
---|---|---|---|
Problema | Energii | Scor | 25 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.4 kb |
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
unsigned g,w,eg[10001],cg[10001],i,ec,cc;
float ran[10001];
void vectori(unsigned g)
{
for( i=0;i<g;i++)
{
fin>>eg[i];
fin>>cg[i];
ran[i]=(float)cg[i]/eg[i];
}
}
void ordVect(unsigned g)
{
unsigned gasit,aux;
float auxR;
do{
gasit=0;
for(i=0;i<g-1;i++)
if(ran[i]>ran[i+1])
{
auxR=ran[i];
ran[i]=ran[i+1];
ran[i+1]=auxR;
aux=eg[i];
eg[i]=eg[i+1];
eg[i+1]=aux;
aux=cg[i];
cg[i]=cg[i+1];
cg[i+1]=aux;
gasit=1;
}
}while(gasit);
}
unsigned enMin(unsigned g)
{
i=0;
while(ec<w)
{
if(ran[i]!=0)
{
ec+=eg[i];
cc+=cg[i];
}
i++;
}
return cc;
}
int main()
{
fin>>g>>w;
vectori(g);
ordVect(g);
fout<<enMin(g);
return 0;
}