Cod sursa(job #1893712)

Utilizator mihai.alphamihai craciun mihai.alpha Data 25 februarie 2017 22:11:38
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <cstdlib>
#include <algorithm>

using namespace std;

FILE *fin = fopen("rucsac.in", "r"), *fout = fopen("rucsac.out", "w");

#define MAX 10001

int r[MAX];

int main()  {
    r[0] = 1;
    int n, g;
    fscanf(fin, "%d%d", &n, &g);
    for(int i = 0;i < n;i++)  {
        int w, p;
        fscanf(fin, "%d%d", &w, &p);
        for(int j = g;j >= 0;j--)
            if(r[j])  {
                if(j + w <= g)
                    r[j + w] = max(r[j + w], r[j] + p);
            }
    }
    int ans = 0;
    for(int i = 0;i <= g;i++)
        ans = max(ans, r[i]);
    fprintf(fout, "%d", ans - 1);
    fclose(fin), fclose(fout);
    return 0;
}