Cod sursa(job #1947352)

Utilizator braisaMiron Raisa braisa Data 30 martie 2017 21:53:34
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <algorithm>
using namespace std;
int N, G, Pmax;
bool u;
int W[5100], P[5100];
int D[2][11000];
    
int main()
{   ifstream fin("rucsac.in");
    ofstream fout("rucsac.out");
    fin >> N >> G;
    for(int i = 1; i <= N; ++i)
        fin >> W[i] >> P[i];
      for(int i = 1; i <= N; ++i){
        for(int cw = 0; cw <= G; ++cw)
        {
        D[u][cw] = D[!u][cw];
        if(W[i] <= cw)
        D[u][cw] = max(D[u][cw], D[!u][cw - W[i]] + P[i]);            
        }
        u = !u;
    }  u = !u;
    Pmax = D[u][G];
    fout << Pmax;
    return 0;
}
// lincul pe data de 6 aprilie 2016
//http://www.infoarena.ro/job_detail/1677440?action=view-source