Submission #101808


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
int a,b;
int s[200000],t[200000];
pair<int,int> ps[400000];
int next[30][200000];
void solve(){
	int res=0;
	for(int i=0;i<a;i++){
		if(t[i]<s[i])t[i]+=b;
		s[a+i]=s[i]+b;
		t[a+i]=t[i]+b;
	}
	for(int i=0;i<a*2;i++){
		ps[i]=make_pair(t[i],i);
		ps[a*2+i]=make_pair(s[i],a*2+i);
	}
	std::sort(ps,ps+a*4);
	int last=-1;
	for(int i=a*4-1;i>=0;i--){
		int id=ps[i].second;
		if(id<a*2){
			next[0][id]=last;
		}else {
			id-=a*2;
			if(last<0||t[last]>t[id]){
				last=id;
			}
		}
	}
	for(int k=0;k+1<30;k++){
		for(int i=0;i<a*2;i++){
			if(next[k][i]<0)next[k+1][i]=-1;
			else next[k+1][i]=next[k][next[k][i]];
		}
	}
	for(int i=0;i<a;i++){
		int tmp=0,j=i;
		for(int k=29;k>=0;k--){
			int j2=next[k][j];
			if(j2>=0&&t[j2]<=s[i]+b){
				j=j2;
				tmp|=1<<k;
			}
		}
		res=max(res,tmp+1);
	}
	printf("%d\n",res);
}
int main(){
	scanf("%d%d",&a,&b);
	for(int i=0;i<a;i++)scanf("%d%d",s+i,t+i);
	solve();
}

Submission Info

Submission Time
Task A - Anime Master
User wakaba
Language C++ (GCC 4.4.7)
Score 100
Code Size 1005 Byte
Status AC
Exec Time 231 ms
Memory 28844 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:51: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:52: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result

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 27 ms 3960 KB
10 AC 27 ms 4000 KB
11 AC 24 ms 4000 KB
12 AC 27 ms 4004 KB
13 AC 30 ms 4008 KB
14 AC 26 ms 4008 KB
15 AC 27 ms 4012 KB
16 AC 27 ms 4008 KB
17 AC 26 ms 4128 KB
18 AC 26 ms 4004 KB
19 AC 25 ms 4000 KB
2 AC 26 ms 4132 KB
20 AC 25 ms 4004 KB
21 AC 25 ms 3928 KB
22 AC 27 ms 4012 KB
23 AC 27 ms 3956 KB
24 AC 26 ms 4012 KB
25 AC 25 ms 4000 KB
26 AC 26 ms 3996 KB
27 AC 26 ms 3996 KB
28 AC 26 ms 4004 KB
29 AC 26 ms 4004 KB
3 AC 26 ms 4128 KB
30 AC 27 ms 4000 KB
31 AC 26 ms 4008 KB
32 AC 25 ms 4004 KB
33 AC 26 ms 4008 KB
34 AC 25 ms 3956 KB
35 AC 26 ms 4004 KB
36 AC 26 ms 4000 KB
37 AC 26 ms 4000 KB
38 AC 25 ms 4000 KB
39 AC 26 ms 4004 KB
4 AC 26 ms 3936 KB
40 AC 26 ms 3996 KB
41 AC 25 ms 4000 KB
42 AC 25 ms 4000 KB
43 AC 28 ms 4012 KB
44 AC 25 ms 4008 KB
45 AC 27 ms 4132 KB
46 AC 27 ms 4008 KB
47 AC 25 ms 4000 KB
48 AC 26 ms 4012 KB
49 AC 26 ms 3996 KB
5 AC 27 ms 4004 KB
50 AC 26 ms 4132 KB
51 AC 27 ms 3940 KB
52 AC 26 ms 4000 KB
53 AC 26 ms 4004 KB
54 AC 25 ms 4004 KB
55 AC 27 ms 4008 KB
56 AC 27 ms 3956 KB
57 AC 26 ms 4008 KB
58 AC 162 ms 28844 KB
59 AC 183 ms 28840 KB
6 AC 25 ms 4012 KB
60 AC 169 ms 28836 KB
61 AC 159 ms 28840 KB
62 AC 171 ms 28832 KB
63 AC 181 ms 28836 KB
64 AC 231 ms 28836 KB
65 AC 70 ms 11048 KB
66 AC 112 ms 17192 KB
67 AC 74 ms 11432 KB
68 AC 34 ms 5240 KB
69 AC 29 ms 4380 KB
7 AC 26 ms 4008 KB
70 AC 30 ms 4780 KB
71 AC 27 ms 4068 KB
72 AC 27 ms 4136 KB
73 AC 26 ms 4128 KB
74 AC 29 ms 4512 KB
75 AC 31 ms 5112 KB
76 AC 36 ms 5924 KB
77 AC 32 ms 5032 KB
78 AC 35 ms 5800 KB
79 AC 28 ms 4520 KB
8 AC 27 ms 4128 KB
80 AC 28 ms 4388 KB
81 AC 37 ms 5540 KB
82 AC 31 ms 5288 KB
83 AC 30 ms 4980 KB
84 AC 38 ms 6436 KB
85 AC 39 ms 6308 KB
86 AC 32 ms 5028 KB
87 AC 32 ms 5284 KB
88 AC 33 ms 5288 KB
89 AC 39 ms 6496 KB
9 AC 26 ms 4008 KB