Cod sursa(job #1830130)

Utilizator titusuTitus C titusu Data 16 decembrie 2016 11:07:15
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

fstream fin("rucsac.in", ios::in), fout("rucsac.out", ios::out);

int n , GMax, greutate[5001], profit[5001];
int pMax[2][10001], * p, * q;

int main()
{
    fin >> n >> GMax;
    for(int i = 1 ; i <= n ; i ++)
        fin >> greutate[i] >> profit[i];
    p = pMax[0], q = pMax[1];
    for(int i = 1 ; i <= n ; i ++)
    {
        for(int j = 1 ; j <= GMax ; j++)
            if(greutate[i] > j)
                q[j] = p[j];
            else
                q[j] = max(p[j], p[j-greutate[i]] + profit[i]);
        swap(p , q);
    }
    
    fout << p[GMax];
    return 0;
}