Submission #729404

#TimeUsernameProblemLanguageResultExecution timeMemory
729404pccSnake Escaping (JOI18_snake_escaping)C++14
5 / 100
2057 ms5260 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pll pair<ll,ll>
#define fs first
#define sc second


void solve(){
	int n,q;
	cin>>n>>q;
	int arr[1<<n];
	for(auto &i:arr){
		char c;
		cin>>c;
		i = c-'0';
	}
	while(q--){
		string s;
		cin>>s;
		reverse(s.begin(),s.end());
		int ans = 0;
		for(int j = 0;j<(1<<n);j++){
			bool flag = true;
			for(int k = 0;k<n;k++){
				if(s[k] == '0'&&((1<<k)&j))flag = false;
				else if(s[k] == '1'&&!((1<<k)&j))flag = false;
			}
			if(flag)ans += arr[j];//cout<<j<<' ';
		}
		cout<<ans<<'\n';
	}
	return;
}
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int t = 1;
	while(t--)solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...