Cod sursa(job #1414864)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 3 aprilie 2015 10:28:57
Problema Zebughil Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>

using namespace std;

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

int a[18];
int b[18];

bool valid(int k)
{
    int i;
    for (i = 1; i < k; i++)
        if (b[i] == b[k])
            return false;
    return true;
}

int main()
{
    int t = 0, i, n, g;
    int cm = 0, sp = 0;
    while (t < 3)
    {
        int cmmin = 20000;
        fin >> n >> g;
        for (i = 1; i <= n; i++)
            fin >> a[i];


        do
        {
            do
            {
                b[i]++;
                if (b[i] > n)
                    b[i] = 0, i--;
                else if (valid(i))
                    i++;
            }while (i >= n && i > 0);
            if (i == n+1)
            {
                for (i = 1; i <= n; i++)
                {
                    sp += a[b[i]];
                    if (sp > g)
                        sp = 0, cm++;
                }
                if (cm < cmmin)
                    cmmin = cm;
            }
        }while (i > 0);
        fout << cmmin << "\n";
        t++;
    }

    return 0;
}