Gravatar
阎思宇_1
积分:0
提交:0 / 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;

}


题目3426  火烧赤壁      3      评论
2023-08-27 15:18:52