30分求助
查看原帖
30分求助
556307
zhengyixing楼主2023/10/18 17:17
#include<bits/stdc++.h>
using namespace std;
struct node{
	long long x,y;
}num[20010];
int n;
bool cmp(node a,node b){
	if(a.x!=b.x)return a.x<b.x;
	else return a.y<b.y; 
} 
long long sum=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>num[i].x>>num[i].y;
		sum+=num[i].y-num[i].x;
	}
	sort(num+1,num+n+1,cmp);
	long long nx=num[1].x;
	long long ny=num[1].y;
	for(int i=2;i<=n;i++){
		if(num[i].x<ny&&ny<num[i].y){
			sum-=ny-num[i].x;
			ny=num[i].y;
		}
		if(num[i].y<=ny){
			sum-=num[i].y-num[i].x;
		}
		if(ny<=num[i].x){
			nx=num[i].x;
			ny=num[i].y;
		}
	}
	cout<<sum;
	return 0;
}
2023/10/18 17:17
加载中...