Cod sursa(job #3352127)

Utilizator Mihai09Mihai Arteni Mihai09 Data 24 aprilie 2026 09:33:45
Problema Ghiozdan Scor 12
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

#define INF INT_MAX

ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");

long long n,g,fr[210],dp[210][75010];

int main()
{
    fin >>n >>g;
    while(n--)
    {
        int x;
        fin >>x;
        fr[x]++;
    }
    for(int i = 0; i <= 200; i++)
    {
        for(int q = 0; q <= g; q++)
        {
            dp[i][q] = INF;
        }
    }
    for(int i = 0; i <= 200; i++)
    {
        dp[i][0] = 0;
    }
    for(int i = 1; i <= 200; i++)
    {
        for(int q = 0; q <= g; q++)
        {
            dp[i][q] = dp[i-1][q];
            for(int j = 0; j <= fr[i]; j++)
            {
                if(q-i*j >= 0)
                {
                    dp[i][q] = min(dp[i][q],dp[i-1][q-i*j]+j);
                }
            }
        }
    }
    for(int i = g; i >= 0; i--)
    {
        if(dp[200][i] != INF)
        {
            fout <<i<<" "<<dp[200][i]<<"\n";
            break;
        }
    }
    return 0;
}