Cod sursa(job #2616658)

Utilizator DunareanuDinu Dunareanu Dunareanu Data 19 mai 2020 17:19:15
Problema Problema rucsacului Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin , *fout;

int d[10000];

int main() {
    fin=fopen("rucsac.in","r");
    fout=fopen("rucsac.out","w");

    int n,g,l=0,i,j,pmax=0,w,p;

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

    for(i=1;i<=g;i++) {
        d[i]=-1;
    }
    for(i=1;i<=n;i++) {
        fscanf(fin,"%d%d",&w,&p);
        for(j=l;j>=0;j--) {
            if(j+w<=g) {
                if(d[j]!=-1) {
                    if(d[j]+p>d[j+w]) {
                        d[j+w]=d[j]+p;
                        if(j+w>l) {
                            l=j+w;
                        }
                    }
                }
            }
        }
    }
    for(i=g;i>=0;i--) {
        if(d[i]>pmax) {
            pmax=d[i];
        }
    }

    fprintf(fout,"%d\n",pmax);

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