This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 10;
int n, q, store[N];
string s;
pair<int, int> last[N];
int main(){
    cin >> n >> q >> s;
    for (int i = 0; i < n; i ++)
        if (s[i] == '1')
            last[i] = {0, -1};
    int tme = 1;
    for (int i = 0; i < q; i ++){
        string qx;
        cin >> qx;
        if (qx[0] == 't'){
            int x;
            cin >> x;
            x--;
            
            if (s[x] == '1'){
                last[x].second = tme;
                s[x] = '0';
                store[x] += last[x].second - last[x].first + 1;
            }
            else{
                last[x] = {tme, -1};
                s[x] = '1';
            }
        }
        else{
            int a, b;
            cin >> a >> b;
            a--, b--;
            int val = 0;
            if (last[a].second == -1 and last[a].first != -1)
                val = tme - last[a].first;
            // cout << a << " : " << last[a].first << " " << last[a].second << ", cur time = " << tme << endl;
            cout << store[a] + val << endl;
        }
        tme++;
    }
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |