用的是最笨的逐层条件,两层for解决
#include<iostream>
using namespace std;
int main(){
int n,t=0;
int a[2001][2]={0};
int b[2001][2]={0};
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i][0]>>a[i][1];
}
for(int i=0;i<n;i++){
cin>>b[i][0]>>b[i][1];
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(a[i][0]>=b[j][1]){//a完全在b右边
continue;
}
else if(a[i][1]<=b[j][0]){//b完全在a右边
break;
}
else if((a[i][0]<=b[j][0])&&(a[i][1]>=b[j][1])){//b完全在a里面
t+=(b[j][1]-b[j][0]);
}
else if((a[i][0]>=b[j][0])&&(a[i][1]<=b[j][1])){//a完全在b里面
t+=(a[i][1]-a[i][0]);
break;
}
else if((a[i][0]<b[j][0])&&(a[i][1]<b[j][1])){//a左b右且部分重合
t+=(a[i][1]-b[j][0]);
break;
}
else if((a[i][0]>b[j][0])&&(a[i][1]>b[j][1])){//b左a右且部分重合
t+=(b[j][1]-a[i][0]);
}
}
}
cout<<t<<endl;
}
哇我是笨蛋吧,看了别人的,直接A的时间按秒数赋值为1,B的时间再去判断是否为1就好了哇 哄堂大笑了家人们
这个是简单法子