Cod sursa(job #2907608)

Utilizator simion_bogdanSimion Bogdan-Dumitru simion_bogdan Data 30 mai 2022 21:35:19
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include<bits/stdc++.h>
using namespace std;
struct rucsac{
    double valoare;
    double unitate;
    double greutate;
}s[1010];int n,Gmax;
int g;
double val;
bool sortare(rucsac a,rucsac b)
{
    return(a.unitate>b.unitate);
}
int ok=1;
void solve()
{
    for(int i=1;i<=n && ok;i++)
    {
        if(Gmax-g>=s[i].greutate)
        {
            val+=s[i].valoare;
            g+=s[i].greutate;
        }
        else
        {
            val+=(s[i].unitate*(Gmax-g));
            ok=0;
        }
    }
    cout<<val;
}

int main()
{
    cin>>n>>Gmax;
    for(int i=1;i<=n;i++)
    {
        cin>>s[i].greutate>>s[i].valoare;
        s[i].unitate=s[i].valoare/s[i].greutate;
    }
    sort(s+1,s+n+1,sortare);
    solve();
}