Cod sursa(job #1188645)

Utilizator bilbor987Bogdan Pocol bilbor987 Data 20 mai 2014 08:34:35
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.41 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");

struct obiect
{
        int W,P;
        float ef;
}v[100];

int N,G,cast,cap_ram;

void citire()
{
        int i;
        f>>N>>G;
        //cout<<N<<" "<<G;
        for(i=1;i<=N;i++)
        {
                f>>v[i].W>>v[i].P;
                v[i].ef=(float)(v[i].W/v[i].P);
        }
}

void ordonare()
{
        int i,j;
        obiect aux;
        for(i=1;i<=N-1;i++)
                for(j=i+1;j<=N;j++)
                        if(v[i].ef<v[j].ef)
                        {
                                aux=v[i];
                                v[i]=v[j];
                                v[j]=aux;
                        }
}

void rezolvare()
{
        cap_ram=G;
        int i=1;
        float formula=0;
        while(cap_ram>0 && i<=N)
        {
                if(v[i].W<cap_ram)
                {
                        cap_ram-=v[i].W;
                        cast+=v[i].P;
                }
                /*else
                {
                      formula=(float)cap_ram/v[i].masa*100;
                      cap_ram=0;
                      cast+=formula *v[i].valoare;
                }*/
                i+=1;
        }
        g<<cast+2;
}

int main()
{
        citire();
        ordonare();
        rezolvare();
        return 0;
}