1、8 RE,求助大佬
  • 板块P1496 火烧赤壁
  • 楼主LiZz31
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/17 22:15
  • 上次更新2024/1/18 11:07:40
查看原帖
1、8 RE,求助大佬
388782
LiZz31楼主2024/1/17 22:15
//
// Created by lenovo on 2024/1/17.
//
#include<iostream>
#include<algorithm>

using namespace std;
struct line{
  long long l;
  long long r;
}arr[100000*2+10];
int times = 1;
bool comp(line a,line b){
    //printf("%d",times++);
    if (a.l < b.l){
        return true;
    }else if(a.l > b.l){
        return false;
    } else{
        if(a.r >= b.r){
            return true;
        }else{
            return false;
        }
    }
}
int main(){
    int num;
    cin>>num;
    if(num == 0){
        cout<<'0';
        return 0;
    }
    for(int i = 0;i < num;i++){
        cin>>arr[i].l>>arr[i].r;
        if(arr[i].l > arr[i].r){
            long long temp;
            temp = arr[i].l;
            arr[i].l = arr[i].r;
            arr[i].r = temp;
        }
    }
    sort(&arr[0] ,&arr[num - 1],comp);
    long long ans = 0;
    long long pre_l = arr[0].l - 1,pre_r = arr[0].l - 1;
    for(int i = 0;i < num;i++){
        if(arr[i].l > pre_l){
            if(arr[i].l >= pre_r){
                ans += arr[i].r - arr[i].l;
                pre_r = arr[i].r;
            }else{
                if(arr[i].r > pre_r){
                    ans += arr[i].r - pre_r;
                    pre_r = arr[i].r;
                }
            }
            pre_l = arr[i].l;
        }
    }
    cout<<ans;
    return 0;
}
2024/1/17 22:15
加载中...