Cod sursa(job #2077672)

Utilizator CriogeniXBociat Daniel Tiberiu CriogeniX Data 28 noiembrie 2017 14:05:23
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;
#define maxn 5001
#define maxg 10001
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int w[maxn], p[maxn];
int Optim[maxg];

int main() {


    int n, g;
    fin>>n>>g;

    for (int i = 1; i <= n; ++i) {
        fin>>w[i]>>p[i];
    }

    Optim[0] = 0;
    int sol = 0;

    for( int i = 1; i <= n; ++i)
        for( int j = g - w[i]; j >= 0; --j) {
            if( Optim[j+w[i]] < Optim[j] + p[i] )
            {
                Optim[j+w[i]] = Optim[j] + p[i];
                if( Optim[j+w[i]] > sol)
                    sol = Optim[j+w[i]];
            }
        }
    fout<<sol;
    return 0;
}