/*#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#pragma ("reroll") */
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define ins insert
#define F first
#define S second
const int mod = 1e7 + 7,N = 5010,inf = 1e18;
int anss;
string s;
int n,q;
void rec(string t,int pos,int ans){
if(pos==t.size()){
anss+= s[ans] - '0';
return;
}
if(t[pos]=='1') {ans+=(1 << (n-pos-1));rec(t,pos+1,ans);return;}
else if(t[pos]=='0') {rec(t,pos+1,ans);return;}
rec(t,pos+1,ans);
rec(t,pos+1,ans+(1<<(n-pos-1)));
}
signed main(){
//freopen("snnfsn.in","r",stdin)
//freopen("snnfsn.out","w",stdout)
std::ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> q;
cin >> s;
while(q--){
string t;
cin >> t;
rec(t,0,0);
cout << anss << '\n';
anss = 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... |