Submission #1162928

#TimeUsernameProblemLanguageResultExecution timeMemory
1162928irmuunSnake Escaping (JOI18_snake_escaping)C++20
0 / 100
163 ms2588 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int L,Q; cin>>L>>Q; string s; cin>>s; int dig[L+5]; dig[0]=1; for(int i=1;i<=L;i++){ dig[i]=dig[i-1]*3; } cout<<dig[L]<<endl; vector<string>sn; for(int i=0;i<(1<<L);i++){ string x(L,'0'); for(int j=0;j<L;j++){ if(i&(1<<j)){ x[L-j-1]='1'; } } sn.pb(x); } vector<string>que; for(int i=0;i<dig[L];i++){ string x; int cur=i; for(int j=0;j<L;j++){ if(cur%3==0) x+='0'; else if(cur%3==1) x+='1'; else x+='?'; cur/=3; } que.pb(x); } vector<int>ans((int)que.size()); for(int i=0;i<(int)que.size();i++){ for(int j=0;j<sn.size();j++){ bool ok=true; for(int k=0;k<L;k++){ if(que[i][k]=='?') continue; if(que[i][k]!=sn[j][k]){ ok=false; break; } } if(ok){ ans[i]+=s[j]-'0'; } } } for(int i=0;i<Q;i++){ string t; cin>>t; int idx=0; for(int j=0;j<Q;j++){ if(t[j]=='1') idx+=dig[j]; if(t[j]=='?') idx+=(dig[j]<<1); } cout<<ans[idx]<<"\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...