Cod sursa(job #1883646)

Utilizator SaphyrosMarcus Sergiu David Saphyros Data 18 februarie 2017 09:49:38
Problema Problema rucsacului Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

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

int max(int a, int b){
    return (a > b) ? a : b;
}


int n, g, w[5010], p[5010], d[5010][10010];
void cit(){
    fin >> n >> g;
    for (int i = 1; i <= n; i++){
        fin >> w[i] >> p[i];
    }
}

void rez(){
    for (int i = 1; i <= n; i++){
        for (int j = 0; j <= g; j++){
            d[i][j] = d[i-1][j];
            if (w[i] <= j){
                d[i][j] = max(d[i][j], d[i-1][j-w[i]] + p[i]);
            }
        }
    }

    fout << d[n][g];
}

int main()
{
    cit();
    rez();
    return 0;
}