Cod sursa(job #2130644)

Utilizator PostMaloneLiurca Daniel PostMalone Data 13 februarie 2018 19:55:40
Problema Problema rucsacului Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream input("rucsac.in");
ofstream output("rucsac.out");

#define maxn 5001
#define maxg 10001

int main() {
	int W[maxn], P[maxn];
	int Optim[maxg];
	
    int N, G;
    input >> N >> G;
     
    for (int i = 1; i <= N; ++i) 
	{
        input >> 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]];
            }
        }
    
    output << sol;
    
    return 0;
}