Submission #3644448


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define repl(i,a,b) for(int i=(int)(a);(i)<(int)(b);++(i))
#define rep(i,n) repl(i,0,n)
#define all(x) (x).begin(),(x).end()
#define dbg(x) cout<<#x<<"="<<x<<endl
#define fi first
#define se second


typedef pair<int,int> P;

int N,M;
vector<P> ps;
int nxt[1000010][21];
int l[100010],r[100010];
vector<int> ds;

int main(){
    memset(nxt,-1,sizeof(nxt));
    cin>>N>>M;
    rep(i,N){
        cin>>l[i]>>r[i];
        ds.push_back(l[i]);
        ds.push_back(r[i]);
    }
    ds.push_back(M);
    sort(all(ds));
    ds.erase(unique(all(ds)), ds.end());
    M=lower_bound(all(ds),M)-ds.begin();
    rep(i,N){
        l[i]=lower_bound(all(ds),l[i])-ds.begin();
        r[i]=lower_bound(all(ds),r[i])-ds.begin();
        if(l[i]>r[i]){
            r[i]+=M;
        }
        ps.push_back(P(l[i],r[i]));
        ps.push_back(P(l[i]+M,r[i]+M));
    }
    sort(all(ps),[=](const P& a,const P& b){ return a.fi > b.fi; });

    {
        set<int> st;
        int i = 0;
        for (int j = M * 2 - 1; j >= 0; j--) {
            while (i<(int)ps.size()&&ps[i].fi == j) {
                st.insert(ps[i].se);
                i++;
            }
            if (st.size() == 0) nxt[j][0] = -1;
            else nxt[j][0] = *st.begin();
        }
    }

    rep(k,20){
        rep(i,M*2){
            if(nxt[i][k]==-1)nxt[i][k+1]=-1;
            else nxt[i][k+1]=nxt[nxt[i][k]][k];
        }
    }

    int res=1;
    rep(i,N*2){
        int a=ps[i].fi,b=ps[i].se;
        if(b>=2*M)continue;
        int lb=0,ub=N;
        while(ub-lb>1){
            int X=(ub+lb)/2;
            int idx=b;
            rep(k,21){
                if((X>>k)&1){
                    idx=nxt[idx][k];
                    if(idx==-1)break;
                }
            }
            if(idx!=-1&&idx<=a+M) lb=X;
            else ub=X;
        }
        res=max(res,lb+1);
    }
    cout<<res<<endl;

    return 0;
}

Submission Info

Submission Time
Task A - Anime Master
User WAsedAC1
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2038 Byte
Status AC
Exec Time 454 ms
Memory 94832 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 89
Set Name Test Cases
All 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 4, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 5, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 6, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 7, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 8, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 9
Case Name Status Exec Time Memory
1 AC 22 ms 82304 KB
10 AC 22 ms 82304 KB
11 AC 22 ms 82304 KB
12 AC 22 ms 82304 KB
13 AC 22 ms 82304 KB
14 AC 21 ms 82304 KB
15 AC 22 ms 82304 KB
16 AC 22 ms 82304 KB
17 AC 22 ms 82432 KB
18 AC 22 ms 82304 KB
19 AC 22 ms 82304 KB
2 AC 22 ms 82304 KB
20 AC 22 ms 82304 KB
21 AC 21 ms 82304 KB
22 AC 22 ms 82304 KB
23 AC 22 ms 82304 KB
24 AC 22 ms 82304 KB
25 AC 22 ms 82304 KB
26 AC 22 ms 82304 KB
27 AC 22 ms 82304 KB
28 AC 22 ms 82304 KB
29 AC 22 ms 82304 KB
3 AC 22 ms 82304 KB
30 AC 22 ms 82304 KB
31 AC 22 ms 82304 KB
32 AC 22 ms 82304 KB
33 AC 22 ms 82304 KB
34 AC 22 ms 82304 KB
35 AC 22 ms 82304 KB
36 AC 22 ms 82304 KB
37 AC 22 ms 82304 KB
38 AC 22 ms 82304 KB
39 AC 22 ms 82304 KB
4 AC 22 ms 82432 KB
40 AC 22 ms 82304 KB
41 AC 22 ms 82304 KB
42 AC 22 ms 82304 KB
43 AC 22 ms 82304 KB
44 AC 22 ms 82304 KB
45 AC 22 ms 82304 KB
46 AC 21 ms 82304 KB
47 AC 22 ms 82304 KB
48 AC 22 ms 82304 KB
49 AC 21 ms 82304 KB
5 AC 22 ms 82304 KB
50 AC 22 ms 82304 KB
51 AC 22 ms 82304 KB
52 AC 22 ms 82304 KB
53 AC 22 ms 82304 KB
54 AC 22 ms 82304 KB
55 AC 22 ms 82304 KB
56 AC 22 ms 82304 KB
57 AC 22 ms 82304 KB
58 AC 298 ms 94832 KB
59 AC 290 ms 94832 KB
6 AC 22 ms 82304 KB
60 AC 184 ms 94832 KB
61 AC 272 ms 94320 KB
62 AC 294 ms 94320 KB
63 AC 319 ms 94320 KB
64 AC 454 ms 94448 KB
65 AC 89 ms 85624 KB
66 AC 150 ms 88180 KB
67 AC 94 ms 85880 KB
68 AC 32 ms 82816 KB
69 AC 23 ms 82432 KB
7 AC 22 ms 82304 KB
70 AC 29 ms 82688 KB
71 AC 22 ms 82304 KB
72 AC 23 ms 82304 KB
73 AC 23 ms 82432 KB
74 AC 26 ms 82560 KB
75 AC 31 ms 82816 KB
76 AC 39 ms 83200 KB
77 AC 31 ms 82816 KB
78 AC 33 ms 83200 KB
79 AC 25 ms 82560 KB
8 AC 22 ms 82304 KB
80 AC 24 ms 82432 KB
81 AC 32 ms 82816 KB
82 AC 30 ms 82944 KB
83 AC 29 ms 82816 KB
84 AC 41 ms 83452 KB
85 AC 41 ms 83324 KB
86 AC 28 ms 82816 KB
87 AC 31 ms 82944 KB
88 AC 30 ms 82688 KB
89 AC 42 ms 83324 KB
9 AC 22 ms 82304 KB