Cod sursa(job #1564046)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 7 ianuarie 2016 22:23:27
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

const int N = 5005;
const int G = 10005;

struct
{
    int w, p;
} v[N];

int n, Gmax, fin;
int rez[G];

int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    scanf("%d %d", &n, &Gmax);
    for (int i = 1; i <= n; i++)
        scanf("%d %d", &v[i].w, &v[i].p);
    for (int i = 1; i <= n; i++)
    {
        for (int i1 = Gmax; i1 >= v[i].w; i1--)
            rez[i1] = max(rez[i1], rez[i1 - v[i].w] + v[i].p);
    }
    for (int i = 1; i <= Gmax; i++)
        fin = max(fin, rez[i]);
    printf("%d", fin);
    return 0;
}