Cod sursa(job #3353409)

Utilizator lucriLuchian Cristian lucri Data 7 mai 2026 10:16:33
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.56 kb
#include <bits/stdc++.h>
std::ifstream cin("rucsac.in");
std::ofstream cout("rucsac.out");
long long n,max,v[5010],g[5010],sum[5010],ans;
void bkt(long long poz,long long sumg,long long sumv)
{
    ans=std::max(ans,sumv);
    if(poz>n||sumv+sum[poz]<=ans)
        return;
    if(sumg+g[poz]<=max)
        bkt(poz+1,sumg+g[poz],sumv+v[poz]);
    bkt(poz+1,sumg,sumv);
}
int main()
{
    cin>>n>>max;
    for(int i=1;i<=n;++i)
        cin>>g[i]>>v[i];
    for(int i=n;i>=1;--i)
        sum[i]=sum[i+1]+v[i];
    bkt(1,0,0);
    cout<<ans;
    return 0;
}