Cod sursa(job #3332560)

Utilizator And_etcAndrei P And_etc Data 7 ianuarie 2026 15:25:24
Problema Zebughil Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <bits/stdc++.h>
using namespace std;

int d1[300555];
int d2[300555];
int v[25];

int main() {
    ifstream cin("zebughil.in");
    ofstream cout("zebughil.out");

    int n, m;

    for (int h = 1; h <= 3; ++h) {
        cin >> n >> m;

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

        long long p = 1;

        for (int i = 1; i <= n; ++i) {
            for (int j = 0; j < p; ++j) {
                d1[j + p] = v[i] + d1[j];
                d2[j + p] = INT_MAX;
            }
            p *= 2;
        }

        p = 1;

        for (int i = 1; i <= n; ++i) {
            for (int j = 0; j < p; ++j) {
                if (d1[j + p] <= m) {
                    for (int x = 0; x < p; ++x) {
                        if ((j & x) == 0 && d2[x] != INT_MAX) {
                            if (d2[x] + 1 < d2[j + p + x]) {
                                d2[j + p + x] = d2[x] + 1;
                            }
                        }
                    }
                }
            }
            p *= 2;
        }

        cout << d2[p - 1] << "\n";
    }

    return 0;
}