Submission #1192165

#TimeUsernameProblemLanguageResultExecution timeMemory
1192165AiperiiiSnake Escaping (JOI18_snake_escaping)C++20
5 / 100
2095 ms4348 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define pb push_back

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    int l,q;
    cin>>l>>q;
    string s;
    cin>>s;
    
    while(q--){
        string x;
        cin>>x;
        reverse(all(x));
        int n=0;
        vector <int> v;
        int cnt=0;
        int ans=0;
        for(int i=0;i<x.size();i++){
            if(x[i]=='?'){
                v.pb(1<<i);
                cnt++;
            }
            else if(x[i]=='1')n+=(1<<i);
        }
        
        for(int mask=0;mask<(1<<cnt);mask++){
            int n2=0;
            for(int i=0;i<cnt;i++){
                if(mask&(1<<i))n2+=v[i];
            }
            ans+=(s[n+n2]-'0');
        }
        cout<<ans<<"\n";
    }
    
}
/*
3 5 12345678
000
0??
1?0
?11
???
 
 4 8 3141592653589793
 0101
 ?01?
 ??1?
 ?0??
 1?00
 01?1
 ??10
 ????
*/
#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...