用注释的代码去重会报RE,求大佬解答
#include<bits/stdc++.h>
#define endl "\n"
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
//value
struct node{
int l,r;
}a[2000005];
int cnt[2000005];
map<pair<int, int> , int>mp;
//function
bool cmp(node a,node b){
if(a.l==b.l)return a.r<b.r;
else return a.l<b.r;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n,I,h,m;
cin>>n>>I>>h>>m;
int tot=1;
for(int i=1;i<=m;i++){
int x,y;
cin>>x>>y;
if(x>y)swap(x,y);
if(mp[{x,y}])continue;
mp[{x,y}]=1;
a[tot].l=x;
a[tot++].r=y;
}
/*
sort(a+1,a+1+m,cmp);
int tot=1;
for(int i=2;i<=m;i++){
if(a[i].l==a[i-1].l && a[i].r==a[i-1].r)continue;
if(a[i].l==a[i].r)continue;
a[++tot].l=a[i].l;
a[tot].r=a[i].r;
}
m=tot;
*/
for(int i=1;i<=tot;i++){
int mi=min(a[i].l,a[i].r),ma=max(a[i].l,a[i].r);
cnt[mi+1]--;
cnt[ma]++;
}
for(int i=1;i<=n;i++)cnt[i]+=cnt[i-1];
for(int i=1;i<=n;i++)cout<<cnt[i]+h<<endl;
return 0;
}