题解

1 条题解

  • 0
    @ 2022-08-17 22:08:08
    #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

信息

ID
1544
难度
5
分类
模拟 点击显示
标签
递交数
1
已通过
1
通过率
100%
上传者