Cod sursa(job #2927103)

Utilizator LogicaLogica Logica Data 19 octombrie 2022 15:06:04
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>

using namespace std;
struct bun{
    double g,v;
    double raport;
}L[10000];
bool ordine(bun a,bun b){
    return a.raport>b.raport;
}
int n,Gmax;
double x;
int main()
{
    cin>>n>>Gmax;
    for(int i=1;i<=n;i++){
        cin>>L[i].g>>L[i].v;
        L[i].raport =(double)(L[i].v/L[i].g);
}
sort(L+1,L+n+1,ordine);
for(int i = 1;i <= n;i++){
    if(Gmax-L[i].g<0){
        x=x+(double)((L[i].v * Gmax) / L[i].g);
        break;
    }
    else{
        x+=L[i].v;
        Gmax-=L[i].g;
    }
}
cout<<(double)x;
}