本题难度不大,实际上就是算两人区间的交集,然后求和,我用的两个一唯数组,逻辑搞清楚,就可以了,难度不大
#include<iostream>
using namespace std;
struct info{
int a;
int b;
};
int main(){
int n;
cin>>n;
info h[n];
info w[n];
int i,j;
for( i=0;i<n;i++){ //h
cin>>h[i].a>>h[i].b;
}
for( i=0;i<n;i++){ //w
cin>>w[i].a>>w[i].b;
}
int time=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if((h[i].a<w[j].b)&&(h[i].b>w[j].a)){
time+=min(w[j].b,h[i].b)-max(w[j].a,h[i].a);
}else if(w[j].a>h[i].b){
break;
}
}
}
cout<<time<<endl;
return 0;
}