我们模拟过程,注意边界即可
代码如下:
#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;
}

京公网安备 11010502036488号