#include <bits/stdc++.h>
using namespace std;
int l, Q;
string s;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> l >> Q;
cin >> s;
while (Q--) {
string d;
cin >> d;
queue< pair<int, int> > q;
q.emplace(0, 0);
long long ans = 0;
while (!q.empty()) {
auto [num, pos] = q.front();
q.pop();
if (pos == d.size()) {
ans += s[num] - '0';
continue;
}
if (d[pos] == '?') {
q.emplace(num | (1 << (d.size() - 1 - pos)), pos + 1);
q.emplace(num, pos + 1);
} else {
q.emplace(num | ((d[pos] - '0') << (d.size() - 1 - pos)), pos + 1);
}
}
cout << ans << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |