Cod sursa(job #2047594)

Utilizator stefanpiturStefan Alexandru Pitur stefanpitur Data 25 octombrie 2017 00:24:16
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <cstdio>
using namespace std;

int d[10001];
int main()
{
    FILE *fin, *fout;
    int n,i,g,gmax,G,p,j,maxim;
    fin=fopen("rucsac.in","r");
    fout=fopen("rucsac.out","w");
    fscanf(fin,"%d %d\n",&n,&G);
    d[0]=1;
    gmax=maxim=0;
    for(i=0;i<n;i++){
        fscanf(fin,"%d %d\n",&g,&p);
        for(j=gmax;j>=0;j--)
            if(d[j] && j+g<=G){
                d[j+g]=max(d[j+g],p+d[j]);
                maxim=max(maxim,d[j+g]);
                gmax=max(gmax,j+g);
            }
    }
    fprintf(fout,"%d\n",maxim-1);
    fclose(fin);
    fclose(fout);
    return 0;
}