Cod sursa(job #1097129)

Utilizator NaniteNanite Nanite Data 3 februarie 2014 00:41:17
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <iostream>

using namespace std;

#define maxN 5000
#define maxG 10000
#define maxW 10000
#define maxP 10000

int N, G, buffer[maxG+1];

int max() {
    int m = buffer[1];

    for(int i = 2; i <= G; i++) {
        if(buffer[i] > m) {
            m = buffer[i];
        }
    }

    return m;
}

int main() {
    ifstream in("rucsac.in");
    ofstream out("rucsac.out");

    int W, P;

    in >> N >> G;

    for(int i = 0; i < N; i++) {
        in >> W >> P;
        for(int j = G-W; j >= 0; j--) {
            if(buffer[j]+P > buffer[j+W]) {
                buffer[j+W] = buffer[j]+P;
            }
        }
    }

    out << max();

    return 0;
}