Pagini recente » Cod sursa (job #2694560) | Cod sursa (job #1892887) | Cod sursa (job #2672531) | Cod sursa (job #2833328) | Cod sursa (job #2389417)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int c[20],g[20],ef[20],gv,man,castig=0;
int n,i,man1,inv,ordine[20];
int main()
{
fin>>n>>gv;
for(i=1;i<=n;i++)
{ fin>>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])
{
man=ef[i];
ef[i]=ef[i+1];
ef[i+1]=man;
man=c[i];
c[i]=c[i+1];c[i+1]=man;
man=g[i];
g[i]=g[i+1];g[i+1]=man;
inv=1;
man1=ordine[i];
ordine[i]=ordine[i+1];
ordine[i+1]=man1;
}
}
while(inv);
i=1;
while(gv>0&&i<=n)
{
if(gv>g[i])
{
gv-=g[i];
castig+=c[i];
}
i++;
}
fout<<castig;
}