Submission #1286426

#TimeUsernameProblemLanguageResultExecution timeMemory
1286426tormentSnake Escaping (JOI18_snake_escaping)C++20
65 / 100
2062 ms62144 KiB
#include<bits/stdc++.h> using namespace std; int L, q; string T; int S[(1 << 20)]; int dfs(int i, int mask){ if(i == L)return S[mask]; if(T[i] == '?')return dfs(i + 1, (mask << 1) | 1) + dfs(i + 1, mask << 1); if(T[i] == '1')return dfs(i + 1, (mask << 1) | 1); return dfs(i + 1, mask << 1); } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); string s; cin >> L >> q >> s; for(int i = 0;i < (1 << L);++i){ S[i] = s[i] - '0'; } map<string, int>memo; for(int i = 0;i < q;++i){ cin >> T; if(memo.find(T) == memo.end())memo[T] = dfs(0, 0); cout << memo[T] << '\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...