Pagini recente » Istoria paginii utilizator/rasteiuroxanamaria | Cod sursa (job #1298231) | Cod sursa (job #382449) | Cod sursa (job #2615045) | Cod sursa (job #973244)
Cod sursa(job #973244)
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.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(eg[i]!=0)
{
ec+=eg[i];
cc+=cg[i];
}
i++;
}
return cc;
}
int main()
{
fin>>g>>w;
vectori(g);
ordVect(g);
fout<<enMin(g);
// for(i=0;i<g;i++)
// {
// fout<<ran[i]<<" "<<eg[i]<<" "<<cg[i]<<"\n";
// }
return 0;
}