Cod sursa(job #3280743)

Utilizator McMeatGhenea Radu Stefan McMeat Data 27 februarie 2025 14:47:29
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;
#define cin fein
#define cout gout
#define NMAX 11000
#define INF 1000001
#define pii pair<int,int>
ifstream fein("rucsac.in");
ofstream gout("rucsac.out");
//priority_queue<int, vector<int>, greater<int>> q;

long long int n, gmax, g[NMAX], v[NMAX], dp[NMAX][NMAX];
int main()
{
    cin>>n>>gmax;
    for(int i=1;i<=n;i++)
    {
        cin>>g[i]>>v[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=0;j<=gmax;j++)
        {
            if(j>=g[i])
                dp[i%2][j]=max(dp[(i-1)%2][j], dp[(i-1)%2][j-g[i]]+v[i]);
            else
                dp[i%2][j]=dp[(i-1)%2][j];
        }
    }
    // for(int i=0;i<=n;i++)
    // {
    //     for(int j=0;j<=gmax;j++)
    //     {
    //         cout<<dp[i][j]<<" ";
    //     }
    //     cout<<endl;
    // }
    cout<<dp[n%2][gmax];
    return 0;
}