Pagini recente » Monitorul de evaluare | Cod sursa (job #1125488) | Cod sursa (job #834421) | Cod sursa (job #1217751) | Cod sursa (job #1260463)
#include<fstream>
using namespace std;
double c[100],g[100],ef[100],gv,aux,castig;
int i,n,man1,inv,ordine[100];
int main()
{
ifstream f("rucsac.in");
ofstream f1("rucsac.out");
f>>n;
f>>gv;
for(i=1;i<=n;i++)
{
f>>g[i]>>c[i];
ordine[i]=i;
ef[i]=c[i]/g[i];
}
do
{
inv=0;
for(i=1;i<=n-1;i++)
if(ef[i]<ef[i+1])
{
aux=ef[i];
ef[i]=ef[i+1];
ef[i+1]=aux;
aux=c[i];
c[i]=c[i+1];
c[i+1]=aux;
aux=g[i];
g[i]=g[i+1];
g[i+1]=aux;
inv=1;
aux=ordine[i];
ordine[i]=ordine[i+1];
ordine[i+1]=aux;
}
}while(inv);
i=1;
while(gv>0&&i<=n)
{
if(gv>g[i])
{
f1<<"Obiectul "<<ordine[i]<<" "<<1<<"\n";
gv-=g[i];
castig+=c[i];
}
i++;
}
f1<<"Castig total="<<castig;
return 0;
}