1 条题解
-
0Guest LV 0 MOD
-
0
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int main() { int n; cin>>n; long long a[20001],b[20001],l=0;//a数组存储起点,b数组存储终点,l表示最终长度 for(int i=0;i<n;i++) cin>>a[i]>>b[i];//输入 sort(a,a+n); sort(b,b+n);//由于起点终点的顺序对答案不产生影响,对a数组和b数组进行排序 for(int i=0;i<n;i++) { l+=b[i]-a[i];//加上当前线段长度 if(i+1<n)//如果这条线段不是最后一条线段 if(b[i]>a[i+1])//如果这条线段与前一条线段有重复 l-=b[i]-a[i+1];//减去重复部分 } cout<<l;//输出 return 0; }
- 1