Cod sursa(job #2389417)

Utilizator AlinaoAlina Curlat Alinao Data 27 martie 2019 08:57:28
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#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;
}