Pagini recente » Cod sursa (job #133227) | Cod sursa (job #2660119) | Cod sursa (job #696482) | Cod sursa (job #1288073) | Cod sursa (job #940399)
Cod sursa(job #940399)
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream scrie("rucsac.out");
int ok,g[100],k=1,i,n,G,aux,procent;
double ef[100],v[100],Pmax;
void sort()
{
while(ok!=1)
{ok=1;
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;
ok=0;
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
aux=g[i];
g[i]=g[i+1];
g[i+1]=aux; }
}
}
}
int main()
{f>>n>>G;
for(i=1;i<=n;i++)
{f>>g[i]>>v[i];
ef[i]=v[i]/g[i];}
sort();
for(i=1;i<=n&&G>0;i++)
{G=G-g[i];
if(G<0) procent=(g[i]+G)*100/g[i];
else procent=100;
if(procent==100) Pmax=Pmax+v[i];
else Pmax=Pmax+v[i]*procent/100;
//scrie<<"se incarca cel cu valoare "<<v[i]<<" in procent de "<< procent<< "%"<<"/n";
}
scrie<<Pmax;
f.close();
scrie.close();
return 0;
}