Cod sursa(job #2176231)

Utilizator AndreiOffCovaci Andrei-Ion AndreiOff Data 16 martie 2018 21:45:35
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#define GMAX 10020
#define NMAX 5020
using namespace std;

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

int n, G, a[GMAX], b[GMAX], g, c, maxim;

int main()
{

    f>>n>>G;
    f>>g>>c;
    a[g] = 1;
    b[g] = c;
    for(int i=2; i<=n; i++){

        f>>g>>c;
        for(int j=G; j>=1; j--){

            if(a[j] != 0 && (j + g <= G) && (a[j+g] == 0 || (b[j+g] < b[j] + c))){

                    a[j+g]=i;
                    b[j+g]=b[j] + c;
                    if(b[j] + c > maxim) maxim = b[j] + c;

               }


        }
        if(a[g] == 0 || b[g] < c){

            a[g] = i;
            b[g] = c;
            if(b[g] > maxim) maxim = b[g];

        }

    }

    h<<maxim;

    return 0;
}