Cod sursa(job #2638916)

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

using namespace std;

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

#define NMAX 10005

int p[NMAX],g[NMAX];
int dp[2][NMAX] ;

int max(int a,int b)
{
    if( a < b)
        return b;
    else
        return a;
}

int main()
{
    int n,gmax;
    fin>>n>>gmax;
    for(int i=1;i<=n;i++)
    {
        fin>>g[i]>>p[i];
    }



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

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

            if(g[i] <= j)
            {
                dp[1][j] = max(dp[0][j],dp[0][j-g[i]] + p[i]);
            }
            //cout<<dp[2][j]<< " ";
        }

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

    }

    fout<<dp[1][gmax];

}