WA 15pts,是代码写挂了还是假了
查看原帖
WA 15pts,是代码写挂了还是假了
385165
ZeroF楼主2023/10/17 22:03

rt

//by 0x0F(Himx)
//TYOI AK ME!
#include<bits/stdc++.h>
#define int long long
using namespace std;
struct Node{
    int l,r;
}a[114514],b[114514];
int sum1[114514],sum2[114514];
struct Line{
    int time,val;
        bool operator<(const Line &r)const{
        return time<r.time;
    }
}lin1[114514],lin2[114514];
signed main(){
    int n,m1,m2;
    cin>>n>>m1>>m2;
    for(int i=1;i<=m1;i++)cin>>a[i].l>>a[i].r;
    for(int i=1;i<=m2;i++)cin>>b[i].l>>b[i].r;
    int ans=-114514;
    int l1=0,l2=0;
    for(int i=1;i<=m1;i++){
        lin1[++l1].time=a[i].l,lin1[l1].val=1;
        lin1[++l1].time=a[i].r,lin1[l1].val=-1;
    }
    for(int i=1;i<=m2;i++){
        lin2[++l2].time=b[i].l,lin2[l2].val=1;
        lin2[++l2].time=b[i].r,lin2[l2].val=-1;
    }
    sort(lin1+1,lin1+l1+1);
    sort(lin2+1,lin2+l2+1);
    int used1=0,used2=0;
    for(int i=1;i<=l1;i++){
        if(lin1[i].val==1)sum1[++used1]++;
        else --used1;
    }
    for(int i=1;i<=l2;i++){
        if(lin2[i].val==1)sum2[++used2]++;
        else --used2;
    }
    /*start
    for(int i=0;i<=n;i++)cout<<sum1[i]<<" ";
    cout<<endl;
    for(int i=0;i<=n;i++)cout<<sum2[i]<<" ";
    cout<<endl;
    end*/
    for(int i=1;i<=n;i++)sum1[i]+=sum1[i-1];
    for(int i=1;i<=n;i++)sum2[i]+=sum2[i-1];
    for(int i=0;i<=n;i++)ans=max(ans,sum1[i]+sum2[n-i]);
    cout<<ans<<endl;
    return 0;
}
2023/10/17 22:03
加载中...