Pagini recente » Cod sursa (job #57458) | Cod sursa (job #2438324) | Cod sursa (job #1858921) | Cod sursa (job #274910) | Cod sursa (job #2786608)
#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;
}