Submission #763698

# Submission time Handle Problem Language Result Execution time Memory
763698 2023-06-22T16:06:09 Z adaawf Financial Report (JOI21_financial) C++14
100 / 100
520 ms 132972 KB
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int n, d, a[2000005], t[2000005];
multiset<int> q[2000005];
void update(int v, int tl, int tr, int x, int y, int w) {
    if (tr < x || x < tl) {
        return;
    }
    if (tl == tr) {
        if (w == 0) q[v].erase(q[v].find(y));
        if (w == 1) q[v].insert(y);
        if (q[v].empty()) t[v] = 0;
        else t[v] = (*q[v].rbegin());
        return;
    }
    int mid = (tl + tr) / 2;
    update(v * 2, tl, mid, x, y, w);
    update(v * 2 + 1, mid + 1, tr, x, y, w);
    t[v] = max(t[v * 2], t[v * 2 + 1]);
}
int sum(int v, int tl, int tr, int l, int r) {
    if (r < 0) return 0;
    if (tr < l || r < tl) return 0;
    if (l <= tl && tr <= r) {
        return t[v];
    }
    int mid = (tl + tr) / 2;
    return max(sum(v * 2, tl, mid, l, r), sum(v * 2 + 1, mid + 1, tr, l, r));
}
int f[2000005];
vector<int> v;
int main() {
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    cin >> n >> d;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        v.push_back(a[i]);
    }
    set<pair<int, int>> s;
    sort(v.begin(), v.end());
    v.resize(distance(v.begin(), unique(v.begin(), v.end())));
    for (int i = 1; i <= n; i++) {
        a[i] = lower_bound(v.begin(), v.end(), a[i]) - v.begin() + 1;
    }
    int res = 0;
    for (int i = 1; i <= n; i++) {
        while (i + (*s.begin()).second > d) {
            update(1, 1, v.size(), (*s.begin()).first, f[-(*s.begin()).second], 0);
            s.erase(s.begin());
        }
        f[i] = sum(1, 1, v.size(), 1, a[i] - 1) + 1;
        update(1, 1, v.size(), a[i], f[i], 1);
        res = max(res, f[i]);
        s.insert({a[i], -i});
    }
    cout << res;
}
# Verdict Execution time Memory Grader output
1 Correct 41 ms 94244 KB Output is correct
2 Correct 41 ms 94212 KB Output is correct
3 Correct 41 ms 94248 KB Output is correct
4 Correct 41 ms 94252 KB Output is correct
5 Correct 41 ms 94252 KB Output is correct
6 Correct 40 ms 94160 KB Output is correct
7 Correct 41 ms 94252 KB Output is correct
8 Correct 42 ms 94260 KB Output is correct
9 Correct 44 ms 94256 KB Output is correct
10 Correct 42 ms 94176 KB Output is correct
11 Correct 42 ms 94256 KB Output is correct
12 Correct 41 ms 94184 KB Output is correct
13 Correct 42 ms 94164 KB Output is correct
14 Correct 41 ms 94208 KB Output is correct
15 Correct 41 ms 94164 KB Output is correct
16 Correct 42 ms 94164 KB Output is correct
17 Correct 41 ms 94224 KB Output is correct
18 Correct 41 ms 94172 KB Output is correct
19 Correct 45 ms 94388 KB Output is correct
20 Correct 42 ms 94224 KB Output is correct
21 Correct 41 ms 94164 KB Output is correct
22 Correct 41 ms 94224 KB Output is correct
23 Correct 43 ms 94184 KB Output is correct
24 Correct 42 ms 94248 KB Output is correct
25 Correct 41 ms 94256 KB Output is correct
26 Correct 41 ms 94236 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 41 ms 94244 KB Output is correct
2 Correct 41 ms 94212 KB Output is correct
3 Correct 41 ms 94248 KB Output is correct
4 Correct 41 ms 94252 KB Output is correct
5 Correct 41 ms 94252 KB Output is correct
6 Correct 40 ms 94160 KB Output is correct
7 Correct 41 ms 94252 KB Output is correct
8 Correct 42 ms 94260 KB Output is correct
9 Correct 44 ms 94256 KB Output is correct
10 Correct 42 ms 94176 KB Output is correct
11 Correct 42 ms 94256 KB Output is correct
12 Correct 41 ms 94184 KB Output is correct
13 Correct 42 ms 94164 KB Output is correct
14 Correct 41 ms 94208 KB Output is correct
15 Correct 41 ms 94164 KB Output is correct
16 Correct 42 ms 94164 KB Output is correct
17 Correct 41 ms 94224 KB Output is correct
18 Correct 41 ms 94172 KB Output is correct
19 Correct 45 ms 94388 KB Output is correct
20 Correct 42 ms 94224 KB Output is correct
21 Correct 41 ms 94164 KB Output is correct
22 Correct 41 ms 94224 KB Output is correct
23 Correct 43 ms 94184 KB Output is correct
24 Correct 42 ms 94248 KB Output is correct
25 Correct 41 ms 94256 KB Output is correct
26 Correct 41 ms 94236 KB Output is correct
27 Correct 41 ms 94232 KB Output is correct
28 Correct 41 ms 94288 KB Output is correct
29 Correct 50 ms 94192 KB Output is correct
30 Correct 41 ms 94296 KB Output is correct
31 Correct 42 ms 94284 KB Output is correct
32 Correct 42 ms 94268 KB Output is correct
33 Correct 41 ms 94160 KB Output is correct
34 Correct 41 ms 94200 KB Output is correct
35 Correct 41 ms 94256 KB Output is correct
36 Correct 41 ms 94252 KB Output is correct
37 Correct 43 ms 94164 KB Output is correct
38 Correct 42 ms 94276 KB Output is correct
39 Correct 41 ms 94264 KB Output is correct
40 Correct 43 ms 94248 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 41 ms 94244 KB Output is correct
2 Correct 41 ms 94212 KB Output is correct
3 Correct 41 ms 94248 KB Output is correct
4 Correct 41 ms 94252 KB Output is correct
5 Correct 41 ms 94252 KB Output is correct
6 Correct 40 ms 94160 KB Output is correct
7 Correct 41 ms 94252 KB Output is correct
8 Correct 42 ms 94260 KB Output is correct
9 Correct 44 ms 94256 KB Output is correct
10 Correct 42 ms 94176 KB Output is correct
11 Correct 42 ms 94256 KB Output is correct
12 Correct 41 ms 94184 KB Output is correct
13 Correct 42 ms 94164 KB Output is correct
14 Correct 41 ms 94208 KB Output is correct
15 Correct 41 ms 94164 KB Output is correct
16 Correct 42 ms 94164 KB Output is correct
17 Correct 41 ms 94224 KB Output is correct
18 Correct 41 ms 94172 KB Output is correct
19 Correct 45 ms 94388 KB Output is correct
20 Correct 42 ms 94224 KB Output is correct
21 Correct 41 ms 94164 KB Output is correct
22 Correct 41 ms 94224 KB Output is correct
23 Correct 43 ms 94184 KB Output is correct
24 Correct 42 ms 94248 KB Output is correct
25 Correct 41 ms 94256 KB Output is correct
26 Correct 41 ms 94236 KB Output is correct
27 Correct 41 ms 94232 KB Output is correct
28 Correct 41 ms 94288 KB Output is correct
29 Correct 50 ms 94192 KB Output is correct
30 Correct 41 ms 94296 KB Output is correct
31 Correct 42 ms 94284 KB Output is correct
32 Correct 42 ms 94268 KB Output is correct
33 Correct 41 ms 94160 KB Output is correct
34 Correct 41 ms 94200 KB Output is correct
35 Correct 41 ms 94256 KB Output is correct
36 Correct 41 ms 94252 KB Output is correct
37 Correct 43 ms 94164 KB Output is correct
38 Correct 42 ms 94276 KB Output is correct
39 Correct 41 ms 94264 KB Output is correct
40 Correct 43 ms 94248 KB Output is correct
41 Correct 47 ms 94588 KB Output is correct
42 Correct 47 ms 94388 KB Output is correct
43 Correct 44 ms 94540 KB Output is correct
44 Correct 46 ms 94700 KB Output is correct
45 Correct 47 ms 95044 KB Output is correct
46 Correct 49 ms 95184 KB Output is correct
47 Correct 46 ms 94456 KB Output is correct
48 Correct 46 ms 94624 KB Output is correct
49 Correct 46 ms 94740 KB Output is correct
50 Correct 48 ms 94724 KB Output is correct
51 Correct 46 ms 94520 KB Output is correct
52 Correct 46 ms 94388 KB Output is correct
53 Correct 46 ms 94404 KB Output is correct
54 Correct 46 ms 94488 KB Output is correct
55 Correct 51 ms 95088 KB Output is correct
56 Correct 47 ms 95064 KB Output is correct
57 Correct 46 ms 94960 KB Output is correct
58 Correct 46 ms 95144 KB Output is correct
59 Correct 45 ms 95052 KB Output is correct
60 Correct 46 ms 95060 KB Output is correct
61 Correct 45 ms 95104 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 191 ms 128848 KB Output is correct
2 Correct 147 ms 104252 KB Output is correct
3 Correct 180 ms 100936 KB Output is correct
4 Correct 344 ms 102808 KB Output is correct
5 Correct 290 ms 104872 KB Output is correct
6 Correct 345 ms 105092 KB Output is correct
7 Correct 215 ms 104880 KB Output is correct
8 Correct 240 ms 132780 KB Output is correct
9 Correct 244 ms 104988 KB Output is correct
10 Correct 244 ms 118568 KB Output is correct
11 Correct 303 ms 104808 KB Output is correct
12 Correct 313 ms 104904 KB Output is correct
13 Correct 301 ms 104832 KB Output is correct
14 Correct 350 ms 104948 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 192 ms 129092 KB Output is correct
2 Correct 303 ms 128816 KB Output is correct
3 Correct 416 ms 128876 KB Output is correct
4 Correct 507 ms 132892 KB Output is correct
5 Correct 432 ms 132944 KB Output is correct
6 Correct 509 ms 132952 KB Output is correct
7 Correct 231 ms 132928 KB Output is correct
8 Correct 240 ms 132932 KB Output is correct
9 Correct 247 ms 132644 KB Output is correct
10 Correct 342 ms 132808 KB Output is correct
11 Correct 491 ms 132908 KB Output is correct
12 Correct 476 ms 132892 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 41 ms 94244 KB Output is correct
2 Correct 41 ms 94212 KB Output is correct
3 Correct 41 ms 94248 KB Output is correct
4 Correct 41 ms 94252 KB Output is correct
5 Correct 41 ms 94252 KB Output is correct
6 Correct 40 ms 94160 KB Output is correct
7 Correct 41 ms 94252 KB Output is correct
8 Correct 42 ms 94260 KB Output is correct
9 Correct 44 ms 94256 KB Output is correct
10 Correct 42 ms 94176 KB Output is correct
11 Correct 42 ms 94256 KB Output is correct
12 Correct 41 ms 94184 KB Output is correct
13 Correct 42 ms 94164 KB Output is correct
14 Correct 41 ms 94208 KB Output is correct
15 Correct 41 ms 94164 KB Output is correct
16 Correct 42 ms 94164 KB Output is correct
17 Correct 41 ms 94224 KB Output is correct
18 Correct 41 ms 94172 KB Output is correct
19 Correct 45 ms 94388 KB Output is correct
20 Correct 42 ms 94224 KB Output is correct
21 Correct 41 ms 94164 KB Output is correct
22 Correct 41 ms 94224 KB Output is correct
23 Correct 43 ms 94184 KB Output is correct
24 Correct 42 ms 94248 KB Output is correct
25 Correct 41 ms 94256 KB Output is correct
26 Correct 41 ms 94236 KB Output is correct
27 Correct 41 ms 94232 KB Output is correct
28 Correct 41 ms 94288 KB Output is correct
29 Correct 50 ms 94192 KB Output is correct
30 Correct 41 ms 94296 KB Output is correct
31 Correct 42 ms 94284 KB Output is correct
32 Correct 42 ms 94268 KB Output is correct
33 Correct 41 ms 94160 KB Output is correct
34 Correct 41 ms 94200 KB Output is correct
35 Correct 41 ms 94256 KB Output is correct
36 Correct 41 ms 94252 KB Output is correct
37 Correct 43 ms 94164 KB Output is correct
38 Correct 42 ms 94276 KB Output is correct
39 Correct 41 ms 94264 KB Output is correct
40 Correct 43 ms 94248 KB Output is correct
41 Correct 47 ms 94588 KB Output is correct
42 Correct 47 ms 94388 KB Output is correct
43 Correct 44 ms 94540 KB Output is correct
44 Correct 46 ms 94700 KB Output is correct
45 Correct 47 ms 95044 KB Output is correct
46 Correct 49 ms 95184 KB Output is correct
47 Correct 46 ms 94456 KB Output is correct
48 Correct 46 ms 94624 KB Output is correct
49 Correct 46 ms 94740 KB Output is correct
50 Correct 48 ms 94724 KB Output is correct
51 Correct 46 ms 94520 KB Output is correct
52 Correct 46 ms 94388 KB Output is correct
53 Correct 46 ms 94404 KB Output is correct
54 Correct 46 ms 94488 KB Output is correct
55 Correct 51 ms 95088 KB Output is correct
56 Correct 47 ms 95064 KB Output is correct
57 Correct 46 ms 94960 KB Output is correct
58 Correct 46 ms 95144 KB Output is correct
59 Correct 45 ms 95052 KB Output is correct
60 Correct 46 ms 95060 KB Output is correct
61 Correct 45 ms 95104 KB Output is correct
62 Correct 191 ms 128848 KB Output is correct
63 Correct 147 ms 104252 KB Output is correct
64 Correct 180 ms 100936 KB Output is correct
65 Correct 344 ms 102808 KB Output is correct
66 Correct 290 ms 104872 KB Output is correct
67 Correct 345 ms 105092 KB Output is correct
68 Correct 215 ms 104880 KB Output is correct
69 Correct 240 ms 132780 KB Output is correct
70 Correct 244 ms 104988 KB Output is correct
71 Correct 244 ms 118568 KB Output is correct
72 Correct 303 ms 104808 KB Output is correct
73 Correct 313 ms 104904 KB Output is correct
74 Correct 301 ms 104832 KB Output is correct
75 Correct 350 ms 104948 KB Output is correct
76 Correct 192 ms 129092 KB Output is correct
77 Correct 303 ms 128816 KB Output is correct
78 Correct 416 ms 128876 KB Output is correct
79 Correct 507 ms 132892 KB Output is correct
80 Correct 432 ms 132944 KB Output is correct
81 Correct 509 ms 132952 KB Output is correct
82 Correct 231 ms 132928 KB Output is correct
83 Correct 240 ms 132932 KB Output is correct
84 Correct 247 ms 132644 KB Output is correct
85 Correct 342 ms 132808 KB Output is correct
86 Correct 491 ms 132908 KB Output is correct
87 Correct 476 ms 132892 KB Output is correct
88 Correct 230 ms 100872 KB Output is correct
89 Correct 362 ms 105360 KB Output is correct
90 Correct 323 ms 108608 KB Output is correct
91 Correct 487 ms 129772 KB Output is correct
92 Correct 279 ms 128844 KB Output is correct
93 Correct 462 ms 128812 KB Output is correct
94 Correct 500 ms 130804 KB Output is correct
95 Correct 339 ms 104872 KB Output is correct
96 Correct 370 ms 108924 KB Output is correct
97 Correct 443 ms 114368 KB Output is correct
98 Correct 483 ms 129472 KB Output is correct
99 Correct 520 ms 132788 KB Output is correct
100 Correct 505 ms 132672 KB Output is correct
101 Correct 249 ms 104804 KB Output is correct
102 Correct 271 ms 104852 KB Output is correct
103 Correct 294 ms 104940 KB Output is correct
104 Correct 325 ms 105660 KB Output is correct
105 Correct 396 ms 113344 KB Output is correct
106 Correct 317 ms 131624 KB Output is correct
107 Correct 364 ms 132816 KB Output is correct
108 Correct 480 ms 132928 KB Output is correct
109 Correct 311 ms 104896 KB Output is correct
110 Correct 430 ms 123072 KB Output is correct
111 Correct 479 ms 128576 KB Output is correct
112 Correct 354 ms 128060 KB Output is correct
113 Correct 505 ms 132848 KB Output is correct
114 Correct 489 ms 132852 KB Output is correct
115 Correct 248 ms 132972 KB Output is correct
116 Correct 242 ms 132932 KB Output is correct
117 Correct 284 ms 132948 KB Output is correct
118 Correct 269 ms 132964 KB Output is correct
119 Correct 333 ms 132772 KB Output is correct
120 Correct 343 ms 132876 KB Output is correct