Cod sursa(job #2678046)

Utilizator butasebiButa Gabriel-Sebastian butasebi Data 27 noiembrie 2020 23:42:37
Problema Ghiozdan Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define Gmax 75005
using namespace std;
int n, G, w[20005], dp[75005], i, j, maxx, fr[75005];
int main()
{
    ifstream f("ghiozdan.in");
    ofstream g("ghiozdan.out");
    f >> n >> G;
    for(i = 1; i <= n; i ++)
    {
        f >> w[i];
        fr[w[i]] ++;
    }
    for(i = 1; i <= G; i ++)
        dp[i] = Gmax;
    for(i = 1; i <= n; i ++)
        for(j = G; j >= w[i]; j --)
            if(dp[j] > dp[j - w[i]] + 1)dp[j] = dp[j - w[i]] + 1, maxx = max(maxx, j);
    g << maxx << " " << dp[maxx] << "\n";
    for(i = maxx - 1; i >= 0; i --)
        if(dp[maxx] == dp[i] + 1 && fr[maxx - i] > 0)
        {
            g << maxx - i << "\n";
            fr[maxx - i] --;
            maxx = i;
        }
    return 0;
}