Submission #101850


Source Code Expand

#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long i64;

int N, M;
int L[100000], R[100000];
pair<int, int> las[2100000];

void update(int l, int r, int p){ las[l] = min(las[l], make_pair(r, p)); }

int db[1000000][17];
const int INF = 10000000;

int bin(int p)
{
	int ret = 0;
	int cp = p + M;
	for(int i=16;i>=0;i--){
		if(p >= M){
			if(db[p-M][i] == INF) continue;
			if(db[p-M][i] <= cp-M){
				ret += 1<<i;
				p = db[p-M][i]+M;
			}
		}else{
			if(db[p][i] == INF) continue;
			if(db[p][i] <= cp){
				ret += 1<<i;
				p = db[p][i];
			}
		}
	}
	return ret;
}

int main()
{
	scanf("%d%d", &N, &M);
	for(int i=0;i<N;i++) scanf("%d%d", L+i, R+i);
	for(int i=0;i<=2*M;i++) las[i] = make_pair(10000000, -1);

	for(int i=0;i<N;i++){
		if(L[i] < R[i]){
			update(L[i], R[i], i);
			update(L[i]+M, R[i]+M, i);
		}else{
			update(L[i], R[i]+M, i);
			//update(L[i]+M, R[i]+2*M, i);
		}
	}
	for(int i=2*M-1;i>=0;i--) las[i] = min(las[i], las[i+1]);

	//まだまだ負けないんだから~><
	for(int i=0;i<17;i++){
		for(int j=0;j<M;j++){
			if(i==0) db[j][i] = las[j].first;
			else{
				int nex = db[j][i-1]; //2^(i-1) した
				if(nex == INF){
					db[j][i] = INF;
					continue;
				}else{
					if(nex >= M){
						db[j][i] = db[db[j][i-1]-M][i-1] + M;
					}else{
						db[j][i] = db[db[j][i-1]][i-1];
					}
					if(db[j][i] > j + M) db[j][i] = INF;
				}
			}
		}
	}

	int ret = 0;
	for(int i=0;i<M;i++) ret = max(ret, bin(i));

	printf("%d\n", ret);

	return 0;
}

Submission Info

Submission Time
Task A - Anime Master
User Operasan
Language C++ (GCC 4.4.7)
Score 100
Code Size 1585 Byte
Status AC
Exec Time 726 ms
Memory 84396 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:39: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
./Main.cpp:40: 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 45 ms 17188 KB
10 AC 45 ms 17188 KB
11 AC 44 ms 17180 KB
12 AC 44 ms 17188 KB
13 AC 44 ms 17188 KB
14 AC 45 ms 17192 KB
15 AC 45 ms 17192 KB
16 AC 46 ms 17188 KB
17 AC 44 ms 17192 KB
18 AC 45 ms 17180 KB
19 AC 45 ms 17184 KB
2 AC 45 ms 17192 KB
20 AC 45 ms 17184 KB
21 AC 45 ms 17196 KB
22 AC 45 ms 17128 KB
23 AC 45 ms 17184 KB
24 AC 45 ms 17196 KB
25 AC 45 ms 17192 KB
26 AC 45 ms 17180 KB
27 AC 45 ms 17188 KB
28 AC 44 ms 17196 KB
29 AC 46 ms 17188 KB
3 AC 45 ms 17196 KB
30 AC 46 ms 17192 KB
31 AC 45 ms 17192 KB
32 AC 45 ms 17124 KB
33 AC 46 ms 17188 KB
34 AC 44 ms 17144 KB
35 AC 46 ms 17192 KB
36 AC 46 ms 17196 KB
37 AC 46 ms 17144 KB
38 AC 44 ms 17188 KB
39 AC 45 ms 17120 KB
4 AC 45 ms 17188 KB
40 AC 45 ms 17184 KB
41 AC 44 ms 17172 KB
42 AC 45 ms 17192 KB
43 AC 47 ms 17200 KB
44 AC 46 ms 17188 KB
45 AC 46 ms 17124 KB
46 AC 46 ms 17196 KB
47 AC 45 ms 17188 KB
48 AC 48 ms 17132 KB
49 AC 45 ms 17188 KB
5 AC 44 ms 17184 KB
50 AC 44 ms 17180 KB
51 AC 45 ms 17196 KB
52 AC 44 ms 17192 KB
53 AC 45 ms 17188 KB
54 AC 46 ms 17192 KB
55 AC 46 ms 17192 KB
56 AC 45 ms 17184 KB
57 AC 45 ms 17320 KB
58 AC 677 ms 84380 KB
59 AC 138 ms 24608 KB
6 AC 48 ms 17124 KB
60 AC 128 ms 24608 KB
61 AC 654 ms 84396 KB
62 AC 660 ms 84320 KB
63 AC 641 ms 84276 KB
64 AC 726 ms 84264 KB
65 AC 163 ms 29476 KB
66 AC 176 ms 29988 KB
67 AC 305 ms 45412 KB
68 AC 49 ms 17836 KB
69 AC 64 ms 20520 KB
7 AC 44 ms 17192 KB
70 AC 83 ms 21920 KB
71 AC 67 ms 20452 KB
72 AC 54 ms 19368 KB
73 AC 98 ms 23656 KB
74 AC 53 ms 18856 KB
75 AC 64 ms 20768 KB
76 AC 93 ms 23464 KB
77 AC 86 ms 22820 KB
78 AC 78 ms 21604 KB
79 AC 56 ms 19880 KB
8 AC 45 ms 17180 KB
80 AC 49 ms 18088 KB
81 AC 47 ms 17448 KB
82 AC 82 ms 22304 KB
83 AC 76 ms 21540 KB
84 AC 86 ms 22440 KB
85 AC 72 ms 21240 KB
86 AC 99 ms 23668 KB
87 AC 74 ms 21804 KB
88 AC 47 ms 17448 KB
89 AC 58 ms 18536 KB
9 AC 48 ms 17132 KB