Cod sursa(job #1707891)

Utilizator acer18Herta Alina acer18 Data 26 mai 2016 01:15:20
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#include <algorithm>
using namespace std;
int Nr, G, Pmax;
bool u;//schimb
int W[5100], P[5100];
int help[2][11000];
     
int main()
{   ifstream fin("rucsac.in");
    ofstream fout("rucsac.out");
    fin >> Nr >> G;
    for(int i = 1; i <= Nr; ++i)
        fin >> W[i] >> P[i];
      for(int i = 1; i <= Nr; ++i){
        for(int cw = 0; cw <= G; ++cw)
        {
        help[u][cw] = help[!u][cw];
        if(W[i] <= cw)
        help[u][cw] = max(help[u][cw], help[!u][cw - W[i]] + P[i]);            
        }
        u = !u;
    }  u = !u;
    Pmax = help[u][G];
    fout << Pmax;
    return 0;