P2082 区间覆盖(加强版)

题目

#include<iostream> 
#include<algorithm>
#include<cstring>
using namespace std;
struct node
{
    long long l;
    long long r;
};
node data[100000];
bool compare(const node&a,const node &b)
{
    if(a.l!=b.l)
        return a.l<b.l;
    return a.r<b.r;
}
int main()
{
    long long n;
    //scanf("%lld",&n);
    cin.sync_with_stdio(false);
    cin>>n;
    for(int i=1;i<=n;i++)
        //scanf("$lld%lld",&data[i].l,&data[i].r);
        cin>>data[i].l>>data[i].r;
    sort(data+1,data+1+n,compare);
    long long last=0;
    long long ans=0;
    for(long long i=1;i<=n;i++)
        if(data[i].r>=last)
        {
            ans+=data[i].r-max(last,data[i].l)+1;
            last=max(last,data[i].r)+1;
        }
    //printf("%lld",ans);
    cout<<ans;
}
原文地址:https://www.cnblogs.com/Lance1ot/p/8666233.html