已AC,但求解
查看原帖
已AC,但求解
1060596
_Delete_楼主2024/10/23 21:19

用注释的代码去重会报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;
}
2024/10/23 21:19
加载中...