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 |
|
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 |