AcWing 803. 区间合并复习
原题链接
简单
作者:
Ruccs
,
2021-03-09 09:09:48
,
所有人可见
,
阅读 297
区间合并
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>pii;
const int N=1e6+10;
pii segs[N];
pii res[N];
int n,cnt;
void merge()
{
sort(segs,segs+n);
int l=segs[0].first,r=segs[0].second;
for(int i=1;i<n;i++)
{
if(segs[i].first<=r)
{
r=max(segs[i].second,r);
}
else
{
res[cnt++]={l,r};
l=segs[i].first;
r=segs[i].second;
}
}
res[cnt++]={l,r};
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
int l,r;
cin>>l>>r;
segs[i]={l,r};
}
merge();
cout<<cnt<<endl;
}