Cod sursa(job #1768059)

Utilizator cyg_ieeuVasile Radu-Andrei cyg_ieeu Data 30 septembrie 2016 09:20:39
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <algorithm>

using namespace std;
struct rucsac
{
    int w,p;
};

rucsac v[5005];
int a[10005];

int main()
{
    freopen("rucsac.in", "r", stdin);
    freopen("rucsac.out", "w", stdout);
    int n,g,x,y,i,j,r;
    scanf("%d%d", &n, &g);
    for(i = 1;i <= n;i++)
    {
        scanf("%d%d", &x, &y);
        v[i].w = x;
        v[i].p = y;
    }
    r = 0;
    for(i = 1;i <= n;i++)
        for(j = g - v[i].w;j >= 0;j--)
        {
            if(a[j + v[i].w] < a[j] + v[i].p)
            {
                a[j + v[i].w] = a[j] + v[i].p;
                r = max(r,a[j + v[i].w]);
            }
        }
    printf("%d",r);
    return 0;
}