Submission #1304008

#TimeUsernameProblemLanguageResultExecution timeMemory
1304008tranthanh506Snake Escaping (JOI18_snake_escaping)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define For(i, a, b, x) for (int i = (a); i <= (b); i += (x)) #define Ford(i, a, b, x) for (int i = (a); i >= (b); i -= (x)) typedef pair<int, int> pii; long long n, q, a[(1 << 20) + 5], dp[(1 << 20) + 5], save, cnt, ans; string s; char x; bitset<215> mask(1); int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("voi.inp", "r", stdin); // freopen("voi.out", "w", stdout); cin >> n >> q; For(i, 0, (1 << n) - 1, 1){ cin >> x; dp[i] = x - '0'; } For(i, 1, q, 1){ cin >> s; cnt = 0; save = 0; ans = 0; mask.reset(); mask.set(0); Ford(c, s.size() - 1, 0, 1){ if (s[c] == '1') save += (1 << cnt++); else if (s[c] == '?') mask |= (mask << (1 << cnt++)); else cnt++; } For(j, 0, 210, 1) if (mask[j]) ans += dp[save + j]; cout << ans << '\n'; } 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...