Cod sursa(job #1985300)

Utilizator mirceagavrizimircea luca gavrizi mirceagavrizi Data 27 mai 2017 13:42:07
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
int d[10001];
#include<stdio.h>
using namespace std;
struct da{
    int gr,put;
};
da v[5001];
int main(){
    freopen("rucsac.in","r",stdin);
    freopen("rucsac.out","w",stdout);
    int n,g,i,j,s,maxx;
    scanf("%d%d",&n,&g);
    for(i=1;i<=n;i++)
        scanf("%d%d",&v[i].gr,&v[i].put);
    d[v[1].gr]=v[1].put;
    for(i=2;i<=n;i++){
        for(j=g-v[i].gr;j>=0;j--){
            if(d[j]!=0){
                s=d[j]+v[i].put;
                if(s>d[j+v[i].gr])
                    d[j+v[i].gr]=s;
            }
        }
       if(d[v[i].gr]<v[i].put)
            d[v[i].gr]=v[i].put;
    }
    maxx=-1;
    for(i=1;i<=g;i++)
        if(d[i]>maxx)
            maxx=d[i];
    printf("%d",maxx);
return 0;
}