Cod sursa(job #1790782)

Utilizator CiurezAndreiCiurez Marius-Andrei CiurezAndrei Data 28 octombrie 2016 18:30:29
Problema Ghiozdan Scor 42
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>

#define INF 200000000

using namespace std;

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

int D[120010], N, G, v[25010];
int solutionG, nr;

int main()
{
    fin >> N >> G;

    for(int i = 1; i <= G; i ++)
    {
        D[i] = INF;
    }

    for(int i = 1; i <= N; i ++)
    {
        fin >> v[i];
    }

    for(int i = 1; i <= N; i ++)
    {
        for(int j = G - v[i]; j >= 0; j --)
        {
            if(D[j] != INF)
            {
                D[j + v[i]] = min(D[j + v[i]], D[j] + 1);
            }
        }
    }

    for(int i = G; i >= 1; i --)
    {
        if(D[i] != INF)
        {
            solutionG = i;
            nr = D[i];
            break;
        }
    }

    fout << solutionG << " " << nr << '\n';

    return 0;
}