Cod sursa(job #1487065)

Utilizator DeltaMTP Dragos DeltaM Data 16 septembrie 2015 00:34:36
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>
#include<cstring>
int n,i,j,nmax,s,x[10100],y[10100],m[10100],c[10100];
FILE *f,*g;
int maxim(int a,int b){
    if(a>b)
        return a;
    return b;
}
int main(){
    f=fopen("rucsac.in","r");
    g=fopen("rucsac.out","w");
    fscanf(f,"%d%d",&n,&s);
    for(i=1;i<=n;i++){
        fscanf(f,"%d%d",&m[i],&c[i]);
    }
    y[ m[1] ]=c[1];
    for(i=2;i<=n;i++){
        memcpy(x,y,sizeof(y));
        for(j=0;j<=s;j++){
            if(m[i]<=j)
                y[j]=maxim( x[j] , x[ j - m[i] ] + c[i] );
            else
                y[j]=x[j];
        }
    }
    for(i=1;i<=s;i++){
        nmax=maxim(nmax,y[i]);
    }
    fprintf(g,"%d",nmax);



    fclose(f);
    fclose(g);
    return 0;
}