Pagini recente » Cod sursa (job #2454912) | Cod sursa (job #1878282) | Cod sursa (job #1719382) | Cod sursa (job #548068) | Cod sursa (job #1781947)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int main()
{
int n,i,aux,ok;
float c[101],g[101],e[101],aux2,gmax,p;
int nr[101];
f>>n>>gmax;
for(i=1;i<=n;i++)
f>>g[i];
for(i=1;i<=n;i++)
f>>c[i];
for(i=1;i<=n;i++)
{
e[i]=c[i]/g[i];
nr[i]=i;
}
ok=0;
while(ok==0)
{
ok=1;
for(i=1;i<n;i++)
if(e[i]<e[i+1])
{
aux=g[i];
g[i]=g[i+1];
g[i+1]=aux;
aux=c[i];
c[i]=c[i+1];
c[i+1]=aux;
aux=e[i];
e[i]=e[i+1];
e[i+1]=aux;
aux=nr[i];
nr[i]=nr[i+1];
nr[i+1]=aux;
ok=1;
}}
c=0;i=1;
while(gmax>0&&i<=n)
{
if(g[i]<=gmax)
{
g<<nr[i]<<" "<<1<<'\n';
gmax=gmax-g[i];
aux2=aux2+c[i];
}
else
{
p=gmax/g[i];
g<<nr[i]<<' '<<p<<'\n';
aux2=aux2+c[i]*p;
gmax=0;
}i++;
}g<<c;
return 0;
}