Cod sursa(job #2560663)

Utilizator teomdn001Moldovan Teodor teomdn001 Data 28 februarie 2020 10:37:07
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

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

int n, g;

vector <pair<int, int> > V;

bool compara(const pair<int, int> &P1, const pair<int, int> &P2)
{
    return (P1.second > P2.second);
}

void Citire();

int main()
{
    Citire();
    sort(V.begin(), V.end(), compara);

    int rezultat = 0;
    int tmp = 0;
    unsigned int i = 0;
    while (tmp + V[i].first <= g && i < V.size())
    {
        rezultat += V[i].second;
        tmp += V[i].first;
        ++i;
    }
    fout << rezultat;
}

void Citire()
{
    fin >> n >> g;
    int w, p;

    while (fin >> w >> p)
    {
        V.push_back(make_pair(w, p));
    }
}