Cod sursa(job #877159)

Utilizator SPDionisSpinei Dionis SPDionis Data 12 februarie 2013 17:11:17
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>

using std::cin;
using std::cout;
using std::vector;
int P[10001];

struct obiect
{
    int G;
    int P;
};



int main()
{
    std::ifstream f;
    f.open("rucsac.in");
    int N,G;
    f >> N >> G;
    vector<obiect> a;
    a.resize(N);

    for ( int i = 0; i < N; ++i )
    {
        f >> a[i].G >> a[i].P;
    }
    f.close();

    int rez = 0;

    for (int i = 0; i < N; ++i )
        for (int j = G - a[i].G; j >= 0; --j)
        if ( P[j+a[i].G] < P[j] + a[i].P )
        {
            P[j+a[i].G] = P[j] + a[i].P;
            rez = std::max(rez, P[j+a[i].G] );
        }


    std::ofstream f2;
    f2.open("rucsac.out");
    f2 << rez;
    f2.close();
    return 0;
}