Submission #1144433

#TimeUsernameProblemLanguageResultExecution timeMemory
1144433tntSnake Escaping (JOI18_snake_escaping)C++20
5 / 100
2093 ms7168 KiB
#include <bits/stdc++.h>
using namespace std;
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
//#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3")

#define pb push_back                    
#define ll long long
#define int long long
//#define sort(all(v)) sort(v.begin(),v.end())

int mod = 998244353;
const int N = 1e5 + 10;
const int inf = 1e9;
int fact[200001];
ll binpow(ll a, ll b){
 if(b == 0) return 1;
 else if(b % 2 == 1) return (a * binpow(a, b - 1)) % mod;
 ll p = binpow(a,b / 2);
 return (p * p) % mod;
}
map <pair<int,int>,bool> mp;
vector <pair<int,int>> g[N],g1[N];
signed main(){
    //freopen("mootube.in", "r", stdin);
    //freopen("mootube.out", "w", stdout);
    int l,q;
    cin >> l >> q;
    string s;
    cin >> s;
    while(q--){
        string t;
        cin >> t;
        int sum = 0;
        for(int i = 0; i < (1 << l); i++){
            bool f = 0;
            int j1 = 0;
            for(int j = l - 1; j >= 0; j--){
                if(t[j] == '?'){
                    j1++;
                    continue;
                }
                if((i >> j1 & 1) != t[j] - '0'){
                    f = 1;
                    break;
                }
                j1++;
            }
            if(f == 0) sum += s[i] - '0';
        }
        cout << sum << '\n';
    }
    
}
#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...