Cod sursa(job #2645729)

Utilizator david_octavianoctavian david_octavian Data 29 august 2020 15:20:11
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("rucsac.in")
ofstream cout ("rucsac.out");
struct Object{
    float ci;
    float gi;
    float di;
} v[5005];
bool cmp(Object a,Object b)
{
    return a.di>b.di;
}
int n;
int Gmax;
float ww = 0;
int main()
{
    cin>>n>>Gmax;
    for(int i=1;i<=n;i++)
        cin>>v[i].gi>>v[i].ci;
    for(int i=1;i<=n;i++)
        v[i].di = v[i].ci / v[i].gi;
    sort(v+1,v+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        if(Gmax - v[i].gi >= 0)
        {
            ww = ww + v[i].ci;
        }
        else if(Gmax > 0)
        {
            ww = ww + Gmax * v[i].ci / v[i].gi;
        }
        Gmax = Gmax - v[i].gi;

    }
    cout<<ww;

    return 0;
}