解題過程
此題直接暴力解即可。
這裏採用一個模擬時間點的陣列,當有人在某個時間點出現那麼就+1。
最後判斷有幾個時間點爲2即可找到重疊時間段。
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1000000;
/*陣列過大,须在主函數外部定義保證記憶體足夠分配*/
/*在主函數內部定義過大的陣列記憶體會分配不足*/
int t[N]={0};
int main()
{
int n;
cin>>n;
for(int i=0;i<n*2;i++)
{
int l,r;
cin>>l>>r;
for(int j=l;j<r;j++)
t[j-1]++;
}
cout<<count(t,t+N,2);
return 0;
}