Cod sursa(job #2537090)

Utilizator ProBatmanBalint Leonard ProBatman Data 2 februarie 2020 23:53:49
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

const int CMAX = 10015;
int mat[2][CMAX] , gm , pm , ob;

struct ex{
    int G , P;
}v[CMAX];

int main()
{
    int l , i;
    fin >> ob >> gm;
    for(int i=1;i<=ob;i++)
    {
        fin >> v[i].G >> v[i].P;
    }
    for(i=1,l=0;i<=ob;i++,l=1-l)
    {
        for(int j=1;j<=gm;j++)
        {
            if(v[i].G>j) mat[l][j] = mat[1-l][j];
            else mat[l][j] = max(mat[1-l][j] , mat[1-l][j-v[i].G] + v[i].P);
        }
    }

    /*
    for(int i=1;i<=ob;i++)
    {
        cout << i << " | ";
        for(int j=1;j<=gm;j++)
        {
            cout << mat[i][j] << " ";
        }
        cout << '\n';
    }
    */
    fout << mat[1-l][gm];
    return 0;
}
//hack , daca mergi cu indici negativi nu depasesti memoria :0