Cod sursa(job #1657878)

Utilizator mariusn01Marius Nicoli mariusn01 Data 20 martie 2016 21:06:21
Problema Zebughil Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>

using namespace std;

int D[1<<19];
int t, i, j, v[19], g, n;

int main () {

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

    for (int t = 1; t<=3; t++) {
        fin>>n>>g;
        for (i=0;i<n;i++)
            fin>>v[i];

        for (i=1;i<= (1<<n)-1; i++ ) {
            long long s = 0;
            for (j=0;j<n;j++) {
                if ((i>>j)&1)
                    s += v[j];
            }
            if (s <= g)
                D[i] = 1;
            else {
                D[i] = 20;
                j = (i&(i-1));
                while (j > 0) {

                    if (D[i] > D[j] + D[i^j])
                        D[i] = D[j] + D[i^j];

                    j=((j-1)&i);
                }
            }
        }
        fout<<D[(1<<n)-1]<<"\n";
    }

    return 0;
}