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