Cod sursa(job #2780708)

Utilizator betybety bety bety Data 7 octombrie 2021 18:56:10
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
const int lim=5005;
const int inf=2e9+7;
const int gmax=1e4+5;
pair<int,int> obj[lim];
int dp[gmax],n,g;
int main()
{
    in>>n>>g;
    for(int i=1;i<=n;++i)
        in>>obj[i].first>>obj[i].second;
    for(int i=1;i<=g;++i)
        dp[i]=-inf;
    int l=0;
    for(int i=1;i<=n;++i)
    for(int j=min(l,g-obj[i].first);j>=0;--j)
        dp[j+obj[i].first]=max(dp[j+obj[i].first],dp[j]+obj[i].second),
        l=max(l,j+obj[i].first);
    int maxx=0;
    for(int i=0;i<=g;++i)
        maxx=max(maxx,dp[i]);
    out<<maxx<<'\n';
    return 0;
}