Cod sursa(job #2786608)

Utilizator Rares31100Popa Rares Rares31100 Data 21 octombrie 2021 11:39:04
Problema Zebughil Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;

int n, g;
ifstream fin("zebughil.in");
ofstream fout("zebughil.out");

int suma(vector <int> v)
{
	int rez = 0;

	for(auto val : v)
		rez += val;

	return rez;
}

int cauta(vector <int> v)
{
	if(suma(v) <= g)
		return 1;

	int nMax = (1 << (int)v.size()) - 1, minim = v.size();
	for(int i = 1; i < nMax; i++)
	{
		vector <int> v1, v2;

		for(int j = 0; j < v.size(); j++)
			if((1 << j) & i)
				v1.push_back(v[j]);
			else
				v2.push_back(v[j]);

		int rez = cauta(v1) + cauta(v2);
		minim = min(minim, rez);
	}

	return minim;
}

int main()
{
	for(int k = 1; k <= 3; k++)
	{
		fin >> n >> g;

		vector <int> v;
		for(int i = 1, val; i <= n; i++)
		{
			fin >> val;
			v.push_back(val);
		}

		fout << cauta(v) << '\n';
	}

	return 0;
}