Cod sursa(job #2401253)

Utilizator filip_as@Cirtog Filip Andrei filip_as@ Data 9 aprilie 2019 16:02:39
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 10000;
int d[NMAX+5];
int main() {
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int n,G,i,j,g,p,last,ans=0;
    scanf("%d%d",&n,&G);
    for(i=1; i<=G; i++)
        d[i]=-1;
    last=0;
    for(i=1; i<=n; i++) {
        scanf("%d%d",&g,&p);
        for(j=last; j>=0; j--)
            if(d[j]!=-1) {
                if(j+g>G)
                    continue;
                if(d[j]+p>d[j+g]) {
                    d[j+g]=d[j]+p;
                    if(j+g>last)
                        last=j+g;


                }




            }


    }
    ans=0;
    for(j=G; j>=1; j--)
        if(d[j]>ans)
            ans=d[j];
    printf("%d",ans);


















    return 0;
}