Cod sursa(job #2105825)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 14 ianuarie 2018 13:23:01
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream f("rucsac.in");
ofstream g("rucsac.out");

#define maxN  5001
#define maxG  5001

int W[maxN], P[maxN];
int Optim[maxG];

int main()
{
    int N,G;
    f>>N>>G;

    for(int i=0;i<N;i++) f>>W[i]>>P[i];

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

    for( int i = 0; 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]];
            }
        }
    g<<sol;

    return 0;
}