Cod sursa(job #3194139)

Utilizator AlexandruDrg23Draghici Alexandru AlexandruDrg23 Data 17 ianuarie 2024 09:20:57
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <fstream>
#include <iostream>

using namespace std;

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

int gr[10000],pre[10000];
int v1[10000];
int v2[10000];


int main()
{
    int linie=1;
    int n,g;
    cin>>n>>g;
    for(int k=1;k<=n;k++)
        cin>>gr[k]>>pre[k];
    for(int elem=1;elem<=n;elem++)
    {
        if(linie==1)
        {
            linie=2;
            for(int grec=0;grec<=g;grec++)
            {
                v1[grec]=v2[grec];
                if(gr[elem]<=grec)
                    v1[grec]=max(v1[grec],v2[grec-gr[elem]]+pre[elem]);
            }
        }
        else
        {
            linie=1;
            for(int grec=0;grec<=g;grec++)
            {
                v2[grec]=v1[grec];
                if(gr[elem]<=grec)
                    v2[grec]=max(v2[grec],v1[grec-gr[elem]]+pre[elem]);
            }
        }

    }
    if(linie==1)
        fout<<v2[g];
    else
        fout<<v1[g];
    return 0;
}