Cod sursa(job #2322786)

Utilizator rangrazvanRang Razvan Victor rangrazvan Data 18 ianuarie 2019 12:32:50
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <vector>
#include <iostream>
using namespace std;

int d[2][10001];
int main()
{
    ifstream fin("rucsac.in");
    int n, g;
    fin >> n >> g;
    vector<pair<int,int> > obiecte;
    for(int i=0;i<n;i++){
        int x,y;
        fin>>x>>y;
        obiecte.push_back(make_pair(x,y));
    }
    int l=0;
    for(int i=1; i<=n; ++i, l=1-l)
        for(int cw=0; cw<=g; ++cw)
        {
            d[1-l][cw] = d[l][cw];
            if(obiecte[i-1].first <= cw)
                d[1-l][cw] = max(d[1-l][cw], d[l][cw - obiecte[i-1].first] + obiecte[i-1].second);
        }
    ofstream fout("rucsac.out");
    fout << d[l][g];
    return 0;
}