제출 #1189596

#제출 시각아이디문제언어결과실행 시간메모리
1189596AlgorithmWarriorSnake Escaping (JOI18_snake_escaping)C++20
12 / 100
2096 ms5444 KiB
#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 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...