Cod sursa(job #2741725)

Utilizator razvan_tanaseTanase Razvan-Andrei razvan_tanase Data 18 aprilie 2021 12:39:59
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#include <fstream>

using namespace std;

const char iname[] = "rucsac.in";
const char oname[] = "rucsac.out";

int main() {
    ifstream in(iname);

    int N, W, i, j;
    int value, w;

    in >> N >> W;
    vector<int> prev(W + 1);
    vector<int> curr(W + 1);

    in >> w >> value;
    for (i = w; i <= W; ++i) {
        prev[i] = value;
    }

    for (i = 1; i <= N - 1; ++i) {
        in >> w >> value;
        for (j = 1; j <= W; ++j) {
            if (w > j) {
                curr[j] = prev[j];
            } else {
                curr[j] = max(value + prev[j - w], prev[j]);
            }
        }
        prev = curr;
    }

    in.close();

    ofstream out(oname);
    out << curr[W];
    out.close();

    return 0;
}