Cod sursa(job #1426227)

Utilizator isav_costinVlad Costin Andrei isav_costin Data 29 aprilie 2015 10:13:35
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
#include <algorithm>
using namespace std;
const int DMAX=10005;
int d[DMAX];
int main() {
    freopen( "rucsac.in", "r", stdin );
    freopen( "rucsac.out", "w", stdout );
    int n, gmax, i, g, p, dr=0, pmax=0, j;
    scanf( "%d%d", &n, &gmax );
    for( i=1; i<=gmax; i++ )
        d[i]=-1;
    for( i=1; i<=n; i++ )
    {
        scanf( "%d%d", &g, &p );
        for( j=dr; j>=0; j-- )
            if( j+g<=gmax && d[j]!=-1 && d[j+g]<d[j]+p )
            {
                d[j+g]=d[j]+p;
                if( j+g>dr )
                    dr=j+g;
            }
    }
    for( i=1;i<=gmax;i++ )
        if( d[i]>pmax )
            pmax=d[i];
    printf( "%d", pmax );
    return 0;
}