Submission #1367103

#TimeUsernameProblemLanguageResultExecution timeMemory
1367103kutomei3Street Lamps (APIO19_street_lamps)C++20
0 / 100
34 ms19144 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m;
string s;
void solve()
{
    vector<string> ask;
    vector<pair<int, int>> as(m);
    for (int i = 0; i < m; i++) {
        string q;
        cin >> q;
        ask.push_back(q);
        if (q == "query") cin >> as[i].first >> as[i].second;
        else cin >> as[i].first;
    }
    int ct = 0;
    while (ask[ct] == "toggle") {
        int u;
        u = as[ct].first;
        u--;
        s[u] = (s[u] == '0' ? '1' : '0');
        ct++;
    }
    vector<int> pfs(n + 1, 0);
    for (int i = 1; i <= n; i++) {
        pfs[i] += pfs[i - 1] + (s[i - 1] - '0'); 
    }
    for (int j = ct; j < m; j++) {
        auto [u, v] = as[j];
        if (pfs[v - 1] - pfs[u - 1] == v - u) cout << j - ct + 1 << '\n';
        else cout << 0 << '\n';
    }
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> m;
    cin >> s;
    solve();    
    
    return 0;
}

/**
11011
11011
11111
qi =  sum (min(up->vp) == 1)
      p<=i

5 3
11011
toggle 3
query 3 4
query 1 6
 */
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...