Cod sursa(job #1896815)

Utilizator ionicaion ionica Data 28 februarie 2017 22:08:03
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#define nm1  5001
#define nm2 10001
using namespace std;
int  a[nm1], v[nm1], cmax[2][nm2], n, gmax;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main()
{
    int i,z1,z2;
    fin>>n>>gmax;
    for( i=1; i<=n; i++)
        fin>>a[i]>>v[i];

    z1=1;

    for (i=1;i<=n;++i)
        {
            for (int g=1;g<=gmax;g++)
            {
                z2=1-z1;
                cmax[z2][g]=cmax[z1][g];
                if (a[i]<=g &&
                    cmax[z2][g]<cmax[z1][g-a[i]]+v[i])
                    cmax[z2][g]=cmax[z1][g-a[i]]+v[i];
            }
          z1=z2;
        }

    fout<<cmax[z2][gmax];

    return 0;
}