Cod sursa(job #2201425)

Utilizator zsraduZamfir Radu zsradu Data 4 mai 2018 18:25:34
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct obiecte{double value;int w;int p;}v[5003];
int i,n,gr,weight,profit,s=0;
bool srt(obiecte x,obiecte y)
{
    if(x.value>y.value)return 0;
    else if(x.value==y.value && x.w<y.w)return 0;
    return 1;
}
int main()
{
    f>>n>>gr;
    for(i=1;i<=n;i++)
    {
        f>>weight>>profit;
        v[i].w=weight;
        v[i].p=profit;
        v[i].value=(double)((double)(profit)/weight);
    }
    sort(v+1,v+n+1,srt);
    i=n;
    while(i)
    {
        if(v[i].w<gr)
        {
            s+=v[i].p;
            gr-=v[i].w;
        }
        i--;
    }
    g<<s;
}