Cod sursa(job #1526174)

Utilizator RaresGabrielMircea Rares-Gabriel RaresGabriel Data 16 noiembrie 2015 00:09:04
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
#include<algorithm>
using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

typedef struct{
                int g,val;
                float rap;
              }RUCSAC;
RUCSAC v[100]; int G,n,i;
void citire(){
    fin>>G>>n;
    for(i=1;i<=n;i++)
        fin>>v[i].g;
    for(i=1;i<=n;i++)
    {
        fin>>v[i].val;
        v[i].rap=(float)v[i].val/v[i].g;
    }
}

bool comp(RUCSAC a, RUCSAC b){
    return a.rap<b.rap;
}

void greedy(){
    sort(v+1,v+n+1,comp);
    int profit=0;
    for(int i=1;i<=n&&G>=0;i++)
    {
        if(v[i].g<=G){
            profit=profit+v[i].val;
            G=G-v[i].g;
        }
    }
    fout<<profit;
    fout.close();
}

int main(){
    citire();
    greedy();
    }