#include<bits/stdc++.h>
using namespace std;
int L, q;
string T;
int S[(1 << 20)];
int dfs(int i, int mask){
if(i == L)return S[mask];
if(T[i] == '?')return dfs(i + 1, (mask << 1) | 1) + dfs(i + 1, mask << 1);
if(T[i] == '1')return dfs(i + 1, (mask << 1) | 1);
return dfs(i + 1, mask << 1);
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
string s;
cin >> L >> q >> s;
for(int i = 0;i < (1 << L);++i){
S[i] = s[i] - '0';
}
map<string, int>memo;
for(int i = 0;i < q;++i){
cin >> T;
if(memo.find(T) == memo.end())memo[T] = dfs(0, 0);
cout << memo[T] << '\n';
}
}
| # | 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... |