Cod sursa(job #1921579)

Utilizator aditzu7Adrian Capraru aditzu7 Data 10 martie 2017 13:20:04
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>

using namespace std;
FILE*f=fopen("rucsac.in","r");
FILE*g=fopen("rucsac.out","w");
int mx,gmax,n,i,j,gu[10001],c[10001],cmax[20001];
int main()
{fscanf(f,"%d%d",&n,&gmax);
for(i=1;i<=n;i++) fscanf(f,"%d%d",&gu[i],&c[i]);
    cmax[0]=0;
for(i=1;i<=n;i++){
    int mmax=0;
        for(j=mx;j>=0;j--){
            if(cmax[j+gu[i]]<cmax[j]+c[i]&&j+gu[i]<=gmax&&(!j||cmax[j])){

                cmax[j+gu[i]]=cmax[j]+c[i];
                if(gu[i]+j>mx) mx=gu[i]+j;
            }

    }

}
int mmax=0;
for(i=0;i<=gmax;i++) if(cmax[i]>mmax) mmax=cmax[i];
fprintf(g,"%d",mmax);

    fclose(f);
    fclose(g);

    return 0;
}