Submission #101833


Source Code Expand

#include <cstdio>
#include <cstdlib>

int next[100002];
int s1[100002];
int s2[100002];
int minv[400002][18];
int INF=1000000007;
int N,M,eall;
int exs[400002];
int cmp(const void *ka,const void *kb) {
	int a=*(int *)ka;
	int b=*(int *)kb;
	return a-b;
}
int findpl(int x) {
	int mnv=0; int mxv=eall-1;
	while(mnv<mxv) {
		int hf=(mnv+mxv)/2;
		if(exs[hf]<x) {
			mnv=hf+1;
		} else {
			mxv=hf;
		}
	}
	return mnv;
}
int main() {
	scanf("%d%d",&N,&M);
	for(int i=0;i<N*4;i++) minv[i][0]=INF;
	for(int i=0;i<N;i++) {
		scanf("%d%d",&s1[i],&s2[i]);
		exs[i*4]=s1[i];
		exs[i*4+1]=s2[i];
		exs[i*4+2]=s1[i]+M;
		exs[i*4+3]=s2[i]+M;
	}
	qsort(exs,N*4,sizeof(int),cmp);
	for(int i=1;i<N*4;i++) {
		if(exs[i]!=exs[eall]) {
			eall++;
			exs[eall]=exs[i];
		}
	}
	eall++;
	for(int i=0;i<N;i++) {
		int s,t;
		if(s1[i]>s2[i]) {
			s=findpl(s1[i]); t=findpl(s2[i]+M);
			if(minv[s][0]>t) minv[s][0]=t;
		} else {
			s=findpl(s1[i]); t=findpl(s2[i]);
			if(minv[s][0]>t) minv[s][0]=t;
			s=findpl(s1[i]+M); t=findpl(s2[i]+M);
			if(minv[s][0]>t) minv[s][0]=t;
		}
	}
	for(int i=eall-1;i>0;i--) {
		if(minv[i-1][0]>minv[i][0]) minv[i-1][0]=minv[i][0];
	}
	for(int j=0;j<17;j++) {
		for(int i=0;i<eall;i++) {
			if(minv[i][j]<INF) {
				minv[i][j+1]=minv[minv[i][j]][j];
			} else {
				minv[i][j+1]=INF;
			}
		}
	}
	int sol=0;
	for(int i=0;i<eall;i++) {
		if(exs[i]<M) {
			int nw=i;
			int endv=findpl(exs[i]+M);
			int ksol=0;
			for(int j=17;j>=0;j--) {
				if(minv[nw][j]<=endv) {
					nw=minv[nw][j];
					ksol+=(1<<j);
				}
			}
			if(sol<ksol) sol=ksol;
		}
	}
	printf("%d\n",sol);
	return 0;
}

Submission Info

Submission Time
Task A - Anime Master
User phidnight
Language C++ (GCC 4.4.7)
Score 100
Code Size 1681 Byte
Status AC
Exec Time 439 ms
Memory 32800 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:32: 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 21 ms 796 KB
10 AC 20 ms 928 KB
11 AC 20 ms 804 KB
12 AC 19 ms 804 KB
13 AC 21 ms 800 KB
14 AC 22 ms 804 KB
15 AC 21 ms 928 KB
16 AC 20 ms 932 KB
17 AC 21 ms 768 KB
18 AC 23 ms 808 KB
19 AC 21 ms 812 KB
2 AC 20 ms 796 KB
20 AC 20 ms 808 KB
21 AC 20 ms 804 KB
22 AC 19 ms 800 KB
23 AC 20 ms 928 KB
24 AC 21 ms 804 KB
25 AC 20 ms 816 KB
26 AC 20 ms 740 KB
27 AC 20 ms 928 KB
28 AC 20 ms 932 KB
29 AC 21 ms 932 KB
3 AC 19 ms 796 KB
30 AC 21 ms 932 KB
31 AC 20 ms 796 KB
32 AC 21 ms 808 KB
33 AC 20 ms 816 KB
34 AC 20 ms 808 KB
35 AC 20 ms 808 KB
36 AC 21 ms 736 KB
37 AC 23 ms 792 KB
38 AC 21 ms 804 KB
39 AC 22 ms 936 KB
4 AC 21 ms 800 KB
40 AC 21 ms 804 KB
41 AC 22 ms 804 KB
42 AC 21 ms 800 KB
43 AC 23 ms 920 KB
44 AC 21 ms 796 KB
45 AC 21 ms 800 KB
46 AC 21 ms 932 KB
47 AC 22 ms 808 KB
48 AC 21 ms 800 KB
49 AC 21 ms 740 KB
5 AC 20 ms 804 KB
50 AC 20 ms 804 KB
51 AC 19 ms 932 KB
52 AC 23 ms 772 KB
53 AC 20 ms 800 KB
54 AC 21 ms 808 KB
55 AC 21 ms 932 KB
56 AC 22 ms 804 KB
57 AC 23 ms 808 KB
58 AC 312 ms 32416 KB
59 AC 263 ms 32532 KB
6 AC 20 ms 800 KB
60 AC 241 ms 32424 KB
61 AC 425 ms 32796 KB
62 AC 433 ms 32800 KB
63 AC 439 ms 32800 KB
64 AC 436 ms 32800 KB
65 AC 117 ms 9752 KB
66 AC 220 ms 17568 KB
67 AC 138 ms 10272 KB
68 AC 31 ms 2336 KB
69 AC 24 ms 1188 KB
7 AC 20 ms 796 KB
70 AC 29 ms 1764 KB
71 AC 21 ms 792 KB
72 AC 21 ms 932 KB
73 AC 22 ms 1060 KB
74 AC 26 ms 1560 KB
75 AC 31 ms 2212 KB
76 AC 39 ms 3188 KB
77 AC 30 ms 2088 KB
78 AC 36 ms 3100 KB
79 AC 26 ms 1448 KB
8 AC 19 ms 804 KB
80 AC 24 ms 1320 KB
81 AC 32 ms 2720 KB
82 AC 33 ms 2392 KB
83 AC 32 ms 2080 KB
84 AC 45 ms 3868 KB
85 AC 42 ms 3736 KB
86 AC 29 ms 2080 KB
87 AC 33 ms 2468 KB
88 AC 30 ms 2460 KB
89 AC 43 ms 4000 KB
9 AC 20 ms 808 KB