Cod sursa(job #973244)

Utilizator patratzelAlex Alex patratzel Data 13 iulie 2013 19:44:02
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.5 kb
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

unsigned g,w,eg[10001],cg[10001],i,ec,cc;
float ran[10001];

void vectori(unsigned g)
    {
        for( i=0;i<g;i++)
            {
                fin>>eg[i];
                fin>>cg[i];
                ran[i]=(float)cg[i]/eg[i];
            }
    }

void ordVect(unsigned g)
    {
        unsigned gasit,aux;
        float auxR;
       do{
            gasit=0;
            for(i=0;i<g-1;i++)
                if(ran[i]>ran[i+1])
                    {
                        auxR=ran[i];
                        ran[i]=ran[i+1];
                        ran[i+1]=auxR;

                        aux=eg[i];
                        eg[i]=eg[i+1];
                        eg[i+1]=aux;

                        aux=cg[i];
                        cg[i]=cg[i+1];
                        cg[i+1]=aux;

                        gasit=1;
                    }
        }while(gasit);
    }

unsigned enMin(unsigned g)
    {
        i=0;
        while(ec<w)
            {
                if(eg[i]!=0)
                    {
                        ec+=eg[i];
                        cc+=cg[i];
                    }
                i++;
            }
        return cc;
    }



int main()
{
    fin>>g>>w;
    vectori(g);
    ordVect(g);
    fout<<enMin(g);
   // for(i=0;i<g;i++)
     //   {
       //     fout<<ran[i]<<" "<<eg[i]<<" "<<cg[i]<<"\n";
       // }
    return 0;
}