直接双重循环
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
int main()
{
int n;
cin >> n;
vector<PII> v1,v2;
for(int i=0;i<n;i++)
{
int l,r;
cin >> l >> r;
v1.push_back({l,r});
}
for(int i=0;i<n;i++)
{
int l,r;
cin >> l >> r;
v2.push_back({l,r});
}
int res=0;
for(int i=0;i<v1.size();i++)
{
int l=v1[i].first,r=v1[i].second;
for(int j=0;j<v2.size();j++)
{
if(v2[j].first>=r) break;
else if(v2[j].second<=l) continue;
else if(v2[j].first<=l)
{
res+=min(r,v2[j].second)-l;
}
else if(v2[j].first>l)
{
res+=min(r,v2[j].second)-v2[j].first;
}
}
}
cout << res << endl;
return 0;
}