90tps 求调
查看原帖
90tps 求调
378069
江湖午餐票楼主2024/12/9 13:50
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e4+1;
int a[MAXN],b[MAXN];
bool f[MAXN];
long long ans = 0; 
vector <int> key; 
map <int,int> MAP_key;
int main()
{
//	freopen("a.in","r",stdin);
	int n;
	cin >> n;
	for(int i=1;i<=n;i++)
	{
		cin >> a[i] >> b[i];
		key.push_back(a[i]);
		key.push_back(b[i]);
	}
	sort(key.begin(),key.end());
	key.erase(unique(key.begin(),key.end()),key.end());
	for(int i=1;i<=n;i++)
	{
		int x = lower_bound(key.begin(),key.begin()+key.size(),a[i])-key.begin(),y = lower_bound(key.begin(),key.begin()+key.size(),b[i])-key.begin();
		for(int j=x;j<y;j++)
		{
			f[j] = 1;
		}
	}
	for(int i=0;i<key.size();i++)
	{
		if(f[i]) ans += key[i+1]-key[i];
	}
	cout << ans;
	return 0;	
} 
//-1 1 2 5 9 11
// 0 1 2 3 4 5
// 1 0 1 1 1
2024/12/9 13:50
加载中...