Cod sursa(job #796332)

Utilizator toranagahVlad Badelita toranagah Data 11 octombrie 2012 09:02:58
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>
using namespace std;

    typedef struct { int w,p; } box;

    int n,g,i,j;
    int R[10005];
    box T[10005];

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", &T[i].w, &T[i].p );
    for ( i=1; i<=n; i++ )
        for ( j=g-T[i].w; j>=0; j-- )
            if ( R[j+T[i].w] < R[j] + T[i].p )
                R[j+T[i].w] = R[j] + T[i].p;
    int Maxim=0;
    for ( i=0; i<=g; i++ )
        if ( Maxim < R[i] )
            Maxim=R[i];
    printf("%d\n",Maxim);
    return 0;
}