Cod sursa(job #1341595)

Utilizator alexge50alexX AleX alexge50 Data 12 februarie 2015 22:11:03
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#define max(x,y) (x>y?x:y)

#define G_MAX (10000)

int state[G_MAX];

int main()
{
    FILE *fin=fopen("rucsac.in","r"),
         *fout=fopen("rucsac.out","w");
    int n,gmax;
    int g,p;
    int i,j;

    fscanf(fin,"%d %d",&n,&gmax);

    for(i=0;i<n;i++)
    {
        fscanf(fin,"%d %d",&g,&p);

        for(j=gmax;j>=g;j--)//mai mult de greutate max nu e nevoie, parcurgere din spate in fata pentru a nu se suprapune val.
            state[j]=max(state[j],state[j-g]+p);//merita sa adugam profitul in ghiozdan?
    }

    fprintf(fout,"%d",state[gmax]);

    fclose(fin);
    fclose(fout);
    return 0;
}