求助
查看原帖
求助
385952
f2_longtian楼主2022/8/23 17:00

样例过了,但是0分

#include<bits/stdc++.h>
using namespace std;
struct node{
	long long bg,ed;
}a[20010];
bool cmp(node a,node b){
	if(a.bg<b.bg||(a.bg==b.bg&&a.ed<b.ed))return true;
	return false;
}
int main(){
	long long n;
	cin>>n;
	long long sum=0;
	for(long long i=1;i<=n;i++)cin>>a[i].bg>>a[i].ed; 
	sort(a+1,a+n+1,cmp); 
	int m=1;
	for(long long i=m+1;i<=n;i++){
		if(a[i-1].ed>=a[i].bg){
			a[i].bg=a[i-1].ed-1;
		}
	}//去重
	for(int i=1;i<=n;i++){
		if(a[i].ed>=1&&a[i].bg<=0){
			m=i;
			break;
		}
	}
	int q=1;
	for(int i=a[m].bg;i<=a[m].ed;i++){
		if(i==1){
			a[m].bg=q;
			break;
		}
		q++;
	}
	
	for(int i=m;i<=n;i++){
		sum+=a[i].ed-a[i].bg+1;
	}
	cout<<sum;
	return 0;
}
2022/8/23 17:00
加载中...