Submission #101836


Source Code Expand

#include <cstdio>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#define rep(i, n) for(int i = 0; i < (n); ++i)
#define mp make_pair
#define all(v) (v).begin(), (v).end()

using namespace std;
typedef pair<int, int> pii;

int main(){
	int N, M;
	scanf("%d %d\n", &N, &M);
	vector<int> s(N * 2), t(N * 2);
	for (int i = 0; i < N; ++i) {
		scanf("%d %d\n", &s[i], &t[i]);
	}

	for (int i = 0; i < N; ++i) {
		if (t[i] < s[i]) t[i] += M;
		s[N + i] = s[i] + M;
		t[N + i] = t[i] + M;
	}

	vector<pair<int, int> > ps(N * 4);
	for (int i = 0; i < N * 2; ++i) {
		ps[i] = make_pair(t[i], i);
		ps[N * 2 + i] = make_pair(s[i], N * 2 + i);
	}
	sort(ps.begin(), ps.end());

	int last = -1;
	vector<vector<int> > next(25, vector<int>(N * 2));
	for (int i = N * 4 - 1; 0 <= i; --i) {
		int id = ps[i].second;
		if (id < N * 2) {
			next[0][id] = last;
		} else {
			id -= N * 2;
			if (last < 0 || t[last] > t[id]) {
				last = id;
			}
		}
	}

	for (int k = 0; k + 1 < next.size(); ++k) {
		for (int i = 0; i < N * 2; ++i) {
			if (next[k][i] < 0)
				next[k + 1][i] = -1;
			else
				next[k + 1][i] = next[k][next[k][i]];
		}
	}


	int res = 0;
	for (int i = 0; i < N; ++i) {
		int tmp = 0, j = i;
		for (int k = next.size() - 1; 0 <= k; --k) {
			int j2 = next[k][j];
			if (j2 >= 0 && t[j2] <= s[i] + M) {
				j = j2;
				tmp |= 1 << k;
			}
		}
		res = max(res, tmp + 1);
	}

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

	return 0;
}

Submission Info

Submission Time
Task A - Anime Master
User nikyaudo
Language C++ (G++ 4.6.4)
Score 100
Code Size 1502 Byte
Status AC
Exec Time 234 ms
Memory 25828 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:15:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp:18:33: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-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 22 ms 796 KB
10 AC 20 ms 676 KB
11 AC 20 ms 804 KB
12 AC 20 ms 928 KB
13 AC 21 ms 796 KB
14 AC 21 ms 680 KB
15 AC 21 ms 800 KB
16 AC 19 ms 800 KB
17 AC 21 ms 768 KB
18 AC 21 ms 928 KB
19 AC 21 ms 680 KB
2 AC 21 ms 804 KB
20 AC 22 ms 780 KB
21 AC 22 ms 784 KB
22 AC 21 ms 680 KB
23 AC 20 ms 792 KB
24 AC 21 ms 932 KB
25 AC 19 ms 800 KB
26 AC 22 ms 936 KB
27 AC 20 ms 804 KB
28 AC 21 ms 932 KB
29 AC 20 ms 800 KB
3 AC 21 ms 804 KB
30 AC 21 ms 924 KB
31 AC 21 ms 920 KB
32 AC 20 ms 680 KB
33 AC 21 ms 740 KB
34 AC 21 ms 796 KB
35 AC 21 ms 928 KB
36 AC 22 ms 928 KB
37 AC 21 ms 800 KB
38 AC 20 ms 928 KB
39 AC 21 ms 804 KB
4 AC 22 ms 680 KB
40 AC 22 ms 812 KB
41 AC 21 ms 804 KB
42 AC 21 ms 680 KB
43 AC 21 ms 804 KB
44 AC 21 ms 680 KB
45 AC 23 ms 744 KB
46 AC 21 ms 928 KB
47 AC 22 ms 804 KB
48 AC 21 ms 808 KB
49 AC 21 ms 928 KB
5 AC 22 ms 740 KB
50 AC 20 ms 800 KB
51 AC 21 ms 928 KB
52 AC 21 ms 924 KB
53 AC 20 ms 800 KB
54 AC 21 ms 800 KB
55 AC 22 ms 796 KB
56 AC 22 ms 924 KB
57 AC 22 ms 812 KB
58 AC 189 ms 25764 KB
59 AC 188 ms 25828 KB
6 AC 21 ms 920 KB
60 AC 173 ms 25768 KB
61 AC 183 ms 25824 KB
62 AC 191 ms 25768 KB
63 AC 190 ms 25772 KB
64 AC 234 ms 25760 KB
65 AC 68 ms 7716 KB
66 AC 114 ms 13856 KB
67 AC 74 ms 8096 KB
68 AC 29 ms 1960 KB
69 AC 23 ms 996 KB
7 AC 21 ms 788 KB
70 AC 25 ms 1696 KB
71 AC 21 ms 740 KB
72 AC 21 ms 928 KB
73 AC 21 ms 1052 KB
74 AC 24 ms 1316 KB
75 AC 28 ms 1948 KB
76 AC 32 ms 2716 KB
77 AC 27 ms 1828 KB
78 AC 30 ms 2472 KB
79 AC 24 ms 1272 KB
8 AC 22 ms 680 KB
80 AC 23 ms 1060 KB
81 AC 31 ms 2276 KB
82 AC 28 ms 2040 KB
83 AC 26 ms 1704 KB
84 AC 35 ms 3240 KB
85 AC 34 ms 3104 KB
86 AC 26 ms 1828 KB
87 AC 28 ms 2072 KB
88 AC 29 ms 2036 KB
89 AC 35 ms 3236 KB
9 AC 22 ms 800 KB