Cod sursa(job #3336900)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 26 ianuarie 2026 16:42:49
Problema Ghiozdan Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <algorithm>
#define gmax 75002
#define nmax 20002
#define inf 1e9
using namespace std;
ifstream cin("ghiozdan.in");
ofstream cout("ghiozdan.out");
int n,g,x,dp[gmax],t[gmax],a[nmax],maxi,sum;
void rec(int n){
    if(t[n]!=0)
        rec(t[n]);
    cout<<n-t[n]<<'\n';
}
signed main()
{
    cin>>n>>g;
    for(int i=1;i<=g;i++)
        dp[i]=inf,t[i]=-1;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+n+1);
    for(int i=n;i>0;i--){
        for(int j=min(sum,g-x);j>=0;j--)
            if(dp[j]!=inf&&dp[j+a[i]]>dp[j]+1){
                dp[j+a[i]]=dp[j]+1;
                if(t[j+a[i]]==-1)
                    t[j+a[i]]=j;
                maxi=max(maxi,j+a[i]);
            }
        sum+=a[i];
    }
    cout<<maxi<<" "<<dp[maxi]<<'\n';
    rec(maxi);
    return 0;
}