求助!30pts
  • 板块P1496 火烧赤壁
  • 楼主Johanan
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/12/18 11:41
  • 上次更新2023/10/24 07:20:41
查看原帖
求助!30pts
733005
Johanan楼主2022/12/18 11:41
#include<iostream>
#include<algorithm>
using namespace std;
struct line
{
    int beg, end;
} fire[300000];
bool cmp(line l1, line l2)
{
    return l1.beg < l2.beg;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> fire[i].beg >> fire[i].end;
    sort(fire, fire + n, cmp);
    int head = fire[0].beg, tail = fire[0].end;
    int ans = fire[0].end - fire[0].beg;
    for (int i = 0; i < n; i++)
    {
        if (fire[i].beg >= tail)
            ans += fire[i].end - fire[i].beg;
        else if (fire[i].end > tail)
            ans += fire[i].end - tail;
        head = fire[i].beg;
        tail = fire[i].end;
    }
    cout << ans;
}
2022/12/18 11:41
加载中...