Cod sursa(job #2331629)

Utilizator Username01Name Surname Username01 Data 29 ianuarie 2019 19:12:00
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>

using namespace std;
FILE *f,*g;
int n,G;

struct
{
    int gr, val;
}v[5002];
int c[3][10003];

int main()
{
    f=fopen("rucsac.in","r");
    g=fopen("rucsac.out","w");
    fscanf(f,"%d %d",&n,&G);
    for(int i=1;i<=n;++i)
        fscanf(f,"%d %d",&v[i].gr,&v[i].val);
    int lc=0,lp=1;
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=G;++j)
        {
            if(v[i].gr<=j)
            {
                if(v[i].val+c[lp][j-v[i].gr]>c[lp][j])
                    c[lc][j]=v[i].val+c[lp][j-v[i].gr];
                else
                    c[lc][j]=c[lp][j];
            }
            else
               c[lc][j]=c[lp][j];
        }
        lc=1-lc;
        lp=1-lp;
    }
    fprintf(g,"%d\n",c[lp][G]);
    fclose(f);
    fclose(g);
    return 0;
}