#include <bits/stdc++.h>
using namespace std;
int const MAX=1050000;
int n,q;
int val[MAX];
char qry[MAX];
void read(){
cin>>n>>q;
int i;
for(i=0;i<(1<<n);++i){
char ch;
cin>>ch;
val[i]=ch-'0';
}
}
int solve_brut(){
int nr=0,mask=0;
int i;
for(i=0;i<n;++i)
if(qry[i]=='?')
mask|=(1<<(n-i-1));
else
nr|=(1<<(n-i-1))*(qry[i]-'0');
int submask=mask;
int sum=0;
do{
sum+=val[nr|submask];
submask=((submask-1)&mask);
}while(submask!=mask);
return sum;
}
void process_queries(){
int i,j;
for(i=1;i<=q;++i){
for(j=0;j<n;++j)
cin>>qry[j];
cout<<solve_brut()<<'\n';
}
}
int main()
{
read();
process_queries();
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... |