题目描述:
题解:
求出相交的区间即可,我这里用的是标记左下角的方式(也叫哈希法吧)
也就是如果一个区间存在,就标记下左下角为1
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const int PI = acos(-1);
const int E = exp(1);
const int MOD = 1e9+7;
const int MAX = 1e6+5;
int n;
int arr[MAX];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
int sum = 0;
int a,b;
for(int i = 0; i < n; i++)
{
cin >> a >> b;
for(int j = a; j <= b-1; j++)
{
arr[j] = 1;
}
}
int c,d;
for(int i = 0; i < n; i++)
{
cin >> c >> d;
for(int j = c; j <= d-1; j++)
{
if(arr[j])
{
sum++;
}
}
}
cout << sum << endl;
return 0;
}