Cod sursa(job #1985287)

Utilizator CleliaClelia Maria Dobrescu Clelia Data 27 mai 2017 13:34:42
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <cstdio>
struct ura{
    int x,y;
};
ura d[10001];
int main (){
    freopen ("rucsac.in","r",stdin);
    freopen ("rucsac.out","w",stdout);
    int maxi=0,n,g,i,a,b,j;
    scanf ("%d %d",&n,&g);
    for (i=1;i<=n;i++){
        scanf ("%d %d",&a,&b);
        if (d[a].x<b){
            d[a].y=i;
            d[a].x=b;
        }
        for (j=1;j<=g-a;j++)
            if (d[j].x!=0 && d[j].x+b>d[j+a].x && d[j].y!=i){
                d[j+a].x=d[j].x+b;
                d[j+a].y=i;
            }
    }
    for (i=1;i<=g;i++)
        if (maxi<d[i].x)
            maxi=d[i].x;
    printf ("%d",maxi);
    return 0;
}