Cod sursa(job #2503531)

Utilizator D_ViorelDobrisor Viorel D_Viorel Data 3 decembrie 2019 12:43:52
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");

const int NMAX = 105;

int N, G, Sum, rez, prof;
int greutate[NMAX], profit[NMAX], e[NMAX];

int main()
{
    fin >> N >> G;
    for (int i = 1; i <= N; i ++) {
        fin >> greutate[i] >> profit[i];
        Sum += greutate[i], prof += profit[i];
        e[i] = profit[i] / greutate[i];
    }

    for (int i = 1; i <= N - 1; i ++)
        for (int j = i + 1; j <= N; j ++)
            if (greutate[i] > greutate[j])
                swap(greutate[i], greutate[j]), swap(profit[i], profit[j]);

    for (int i = 1; i <= N - 1; i ++)
        for (int j = i + 1; j <= N; j ++)
            if (greutate[i] == greutate[j] && profit[i] > profit[j])
                 swap(profit[i], profit[j]), swap(greutate[i], greutate[j]);

    for (int i = 1; i <= N; i ++)
        if (Sum - greutate[i] >= G)
            Sum -= greutate[i], prof -= profit[i];
    fout << prof;
    return 0;
}