Pagini recente » Borderou de evaluare (job #126119) | Borderou de evaluare (job #1489350) | Cod sursa (job #3222905) | Borderou de evaluare (job #954906) | Cod sursa (job #3229017)
#include <bits/stdc++.h>
using namespace std;
std::ifstream fin("oite.in");
std::ofstream fout("oite.out");
const int nMax = 1e6;
int n, l;
//vector<int> v[nMax + 1];
vector<int> vec;
int countBits(int n)
{
if(n == 0)return 0;
return 1 + countBits(n & (n - 1));
}
int main() {
fin >> n >> l;
for (int i = 0; i < n; ++i) {
int x, cx;
fin >> x;
// cx = x;
vec.push_back(x);
// x = x % l;
// v[x].push_back(cx);
}
int ans = 0;
for (int i = 4; i <= 1024; ++i) {
if (countBits(i) == 4) { // to check if it has only 4 bits
//fout << "DA\n";
int ci = i;
int s = 0, cnt = 0;
while (ci != 0) {
if ((ci % 2) == 1) s += vec[cnt];
++cnt;
ci = ci / 2;
}
//fout << s << "\n";
if (s == l) {
++ans;
}
}
}
fout << ans;
return 0;
}