Cod sursa(job #3369999)

Utilizator tudor_costinCostin Tudor tudor_costin Data 23 octombrie 2026 00:26:41
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
#define int long long
#define w first
# define p second
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int Nmax=5005,inf=1e15;
pair<int,int> a[Nmax];
int dp[2*Nmax];
signed main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);
    int n,g;
    fin>>n>>g;
    for(int i=1;i<=g;i++) dp[i]=-inf;
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        fin>>a[i].w>>a[i].p;
        for(int j=g;j>=a[i].w;j--)
        {
            dp[j]=max(dp[j-a[i].w]+a[i].p,dp[j]);
            ans=max(ans,dp[j]);
        }
    }
    fout<<ans<<'\n';
    return 0;
}