Cod sursa(job #3274138)

Utilizator IoanMihaiIoan Mihai IoanMihai Data 5 februarie 2025 15:00:20
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
#define N 5005
struct obiect {
    double val;
    double g;
}a[N];
int n, gmax;
int vmax;
bool compare(obiect x, obiect y)
{
    double r1 = (x.val * 1.0) / (x.g * 1.0);
    double r2 = (y.val * 1.0) / (y.g * 1.0);
    return r1 >= r2;
}
int main()
{
    fin >> n >> gmax;
    for (int i=1;i<=n;i++) {
        fin >> a[i].g >> a[i].val;
    }

    sort (a+1, a+n+1, compare);

    for (int i=1;i<=n;i++) {
        if (a[i].g <= gmax) {
            gmax -= a[i].g;
            vmax += a[i].val;
        }
    }

    fout << vmax << '\n';
    return 0;
}