Submission #1189596

#TimeUsernameProblemLanguageResultExecution timeMemory
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...