我们模拟过程,注意边界即可

代码如下:

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define debug(x) cerr << #x << ": " << x << '\n';
const int INF = 0x3f3f3f3f3f3f3f3f;
//倒序不要忘记是--不是++
void solve(){
    int m,q;cin>>m>>q;
    map<int,int> mp;
    int cnt=0;
    while(q--){
        int op,num;cin>>op>>num;
        if(op==1){
            if(num+3<=m){
                if(!mp[num+3]) cnt++;
                mp[num+3]++;
            }
            if(num-3>=1){
                if(!mp[num-3]) cnt++;
                mp[num-3]++;
            }
        }
        else{
            if(num+3<=m){
                mp[num+3]--;
                if(!mp[num+3]) cnt--;
            }
            if(num-3>=1){
                mp[num-3]--;
                if(!mp[num-3]) cnt--;
            }
        }
        cout<<cnt<<"\n";
    }
}
signed main(){
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int t = 1;
    // cin>>t;
    while(t--){
        solve();
    }return 0;
}