Cod sursa(job #2908004)

Utilizator ciutacu_tudorTudor Ciutacu ciutacu_tudor Data 1 iunie 2022 01:27:47
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int N, G;
struct obj {
    int W, P;
}O[100000];

int main()
{
    fin >> N >> G;
    for (int i = 1; i <= N; i++) {
        fin >> O[i].W >> O[i].P;
    }

    for (int i = 1; i < N; i++) {
        for (int j = i + 1; j <= N; j++) {
            if (O[i].P < O[j].P)
                swap(O[i], O[j]);
        }
    }

    int i = 1, sum = 0, max_sum = 0;

    while (sum <= G) {
        max_sum += O[i].P;
        sum += O[i].W;
        i++;
    }

    if (sum > G)
        max_sum = max_sum - O[i-1].P;

    fout <<max_sum;
return 0;
}