Cod sursa(job #1773340)

Utilizator maria15Maria Dinca maria15 Data 7 octombrie 2016 19:03:56
Problema Problema rucsacului Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#define INF 50000000
#define g first
#define p second
using namespace std;

int n, i, j, N, G, D[10001], sol;
pair <int, int> v[5001];

ifstream fin("muzeu.in");
ofstream fout("muzeu.out");

int main(){
    fin>>n>>G;
    for(i=1;i<=n;i++)
        fin>>v[i].g>>v[i].p;
    //sort(v+1, v+n+1);
    for (i=1;i<=G;i++)
        D[i] = -INF;
    D[0] = 0;
    for (i=1;i<=n;i++)
        for (j=G;j>=0;j--)
            if (D[j] != -INF && j + v[i].g <= G) {
                D[j + v[i].g] = max( D[j + v[i].g], D[j] + v[i].p );
                sol = max(sol, D[j + v[i].g]);
            }
    fout<<sol;
    return 0;
}