Cod sursa(job #1704839)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 19 mai 2016 13:37:08
Problema Ghiozdan Scor 70
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.64 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int n,g, i,j, dp[75005], cnt[205], a;

int main()
{
    freopen("ghiozdan.in", "r", stdin);
    freopen("ghiozdan.out", "w", stdout);

    scanf("%d%d", &n, &g);

    for(i=1; i<=g; ++i) dp[i]=n+1;

    for(i=1; i<=n; ++i)
    {
         scanf("%d", &a);
         ++cnt[a];
         for(j=g-a; j>=0; --j)
            dp[j+a] = min(dp[j+a], dp[j]+1);
    }

    for(i=g; i; --i)
        if(dp[i]!=n+1) break;

    printf("%d %d\n", i, dp[i]);

    for(j=i-1; j>=0; --j)
    if(dp[i]==dp[j]+1 && cnt[i-j])
    {
        --cnt[i-j];
        printf("%d\n", i-j );
        i=j;
    }

    return 0;
}