Cod sursa(job #1036273)

Utilizator bogdan10bosBogdan Sitaru bogdan10bos Data 19 noiembrie 2013 09:31:28
Problema Problema rucsacului Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

using namespace std;
struct qq
{
    int x, g;
}v[5005];
int n, g, i, j, a[5005][10000];
int maxx(int x, int y)
{
    if(x>y) return x;
    else return y;
}
int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    scanf("%d%d", &n, &g);
    for(i=1;i<=n;i++)
        scanf("%d%d", &v[i].g, &v[i].x);
    for(i=1;i<=n;i++)
        for(j=1;j<=g;j++)
        {
            a[i][j]=a[i-1][j];
            if(v[i].g<=j)
                a[i][j]=maxx(a[i][j],a[i-1][j-v[i].g]+v[i].x);
        }
    printf("%d", a[n][g]);
    return 0;
}