Cod sursa(job #2638910)

Utilizator nicolaee2Martinescu Nicolae nicolaee2 Data 30 iulie 2020 15:06:07
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include<bits/stdc++.h>

using namespace std;

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

#define NMAX 10005

vector<pair<int,int>> v;
int dp[2][NMAX] ;

int main()
{
    int n,gmax;
    fin>>n>>gmax;
    for(int i=1;i<=n;i++)
    {
        int g,val;
        fin>>g>>val;
        v.push_back({g,val});
    }



    for(int i=0;i<=gmax;i++)
        dp[1][i] = 0;

    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=gmax;j++)
        {

            if(v[i-1].first <= j)
            {
                dp[2][j] = max(dp[1][j],dp[1][j-v[i-1].first] + v[i-1].second);
            }
            //cout<<dp[2][j]<< " ";
        }

        for(int j=1;j<=gmax;j++)
        {
            dp[1][j] = dp[2][j];
        }
        //cout<<endl;

    }

    fout<<dp[1][gmax];

}