Submission #702360

#TimeUsernameProblemLanguageResultExecution timeMemory
702360bebraSnake Escaping (JOI18_snake_escaping)C++17
12 / 100
2075 ms19064 KiB
#include <bits/stdc++.h>
using namespace std;

#define dbg(x) cerr << #x << ": " << x << endl;


int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    int k, q;
    cin >> k >> q;

    string s;
    cin >> s;

    while (q--) {
        string t;
        cin >> t;
        reverse(t.begin(), t.end());

        int first_mask = 0;
        int second_mask = 0;
        for (int i = 0; i < k; ++i) {
            if (t[i] == '?') {
                first_mask |= 1 << i;
            } else if (t[i] == '1') {
                second_mask |= 1 << i;
            }
        }
        int res = s[second_mask] - '0';
        for (int submask = first_mask; submask > 0; submask = (submask - 1) & first_mask) {
            res += s[submask | second_mask] - '0';
        }
        cout << res << '\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...