답안 #501582

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
501582 2022-01-04T06:21:16 Z amunduzbaev Financial Report (JOI21_financial) C++14
100 / 100
751 ms 55228 KB
#include "bits/stdc++.h"
using namespace std;

#define ar array
#define int long long

const int N = 3e5 + 5;

struct ST{
	int tree[N * 4], p[N * 4];
	
	void push(int x, int lx, int rx){
		if(lx == rx || !p[x]) return;
		tree[x<<1] = tree[x<<1|1] = tree[x];
		p[x<<1] = p[x<<1|1] = 1;
		p[x] = 0;
	}
	
	void sett(int l, int r, int v, int lx = 0, int rx = N, int x = 1){
		if(lx > r || rx < l) return;
		if(lx >= l && rx <= r){
			tree[x] = v; p[x] = 1; return;
		} push(x, lx, rx);
		int m = (lx + rx) >> 1;
		sett(l, r, v, lx, m, x<<1), sett(l, r, v, m+1, rx, x<<1|1);
		tree[x] = max(tree[x<<1], tree[x<<1|1]);
	}
	
	int get(int l, int r, int lx = 0, int rx = N, int x = 1){
		if(lx > r || rx < l) return -2e9;
		if(lx >= l && rx <= r) return tree[x];
		push(x, lx, rx);
		int m = (lx + rx) >> 1;
		return max(get(l, r, lx, m, x<<1), get(l, r, m+1, rx, x<<1|1));
	}
}tree, dp;

signed main(){
	ios::sync_with_stdio(0); cin.tie(0);

	int n, d; cin>>n>>d;
	vector<int> a(n + 1);
	map<int, int> mm;
	for(int i=1;i<=n;i++) cin>>a[i], mm[a[i]];
	int cnt = 1;
	for(auto& x : mm) x.second = cnt++;
	for(int i=1;i<=n;i++) a[i] = mm[a[i]];
	
	for(int i=1;i<=n;i++) tree.sett(i, i, -a[i]);
	for(int i=1;i<=n;i++){
		dp.sett(a[i], a[i], max(dp.get(a[i], a[i]), dp.get(0, a[i] - 1) + 1));
		dp.sett(0, -tree.get(max(1ll, i - d + 1), i) - 1, 0);
	}
	
	cout<<dp.get(0, n)<<"\n";
}

# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 0 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 452 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 0 ms 460 KB Output is correct
7 Correct 0 ms 460 KB Output is correct
8 Correct 1 ms 444 KB Output is correct
9 Correct 1 ms 456 KB Output is correct
10 Correct 0 ms 460 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 0 ms 444 KB Output is correct
13 Correct 0 ms 452 KB Output is correct
14 Correct 0 ms 460 KB Output is correct
15 Correct 1 ms 460 KB Output is correct
16 Correct 1 ms 460 KB Output is correct
17 Correct 1 ms 460 KB Output is correct
18 Correct 1 ms 444 KB Output is correct
19 Correct 1 ms 460 KB Output is correct
20 Correct 1 ms 448 KB Output is correct
21 Correct 1 ms 460 KB Output is correct
22 Correct 1 ms 460 KB Output is correct
23 Correct 1 ms 452 KB Output is correct
24 Correct 0 ms 448 KB Output is correct
25 Correct 0 ms 448 KB Output is correct
26 Correct 1 ms 460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 0 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 452 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 0 ms 460 KB Output is correct
7 Correct 0 ms 460 KB Output is correct
8 Correct 1 ms 444 KB Output is correct
9 Correct 1 ms 456 KB Output is correct
10 Correct 0 ms 460 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 0 ms 444 KB Output is correct
13 Correct 0 ms 452 KB Output is correct
14 Correct 0 ms 460 KB Output is correct
15 Correct 1 ms 460 KB Output is correct
16 Correct 1 ms 460 KB Output is correct
17 Correct 1 ms 460 KB Output is correct
18 Correct 1 ms 444 KB Output is correct
19 Correct 1 ms 460 KB Output is correct
20 Correct 1 ms 448 KB Output is correct
21 Correct 1 ms 460 KB Output is correct
22 Correct 1 ms 460 KB Output is correct
23 Correct 1 ms 452 KB Output is correct
24 Correct 0 ms 448 KB Output is correct
25 Correct 0 ms 448 KB Output is correct
26 Correct 1 ms 460 KB Output is correct
27 Correct 1 ms 460 KB Output is correct
28 Correct 1 ms 460 KB Output is correct
29 Correct 1 ms 460 KB Output is correct
30 Correct 1 ms 460 KB Output is correct
31 Correct 1 ms 460 KB Output is correct
32 Correct 1 ms 460 KB Output is correct
33 Correct 1 ms 460 KB Output is correct
34 Correct 1 ms 460 KB Output is correct
35 Correct 1 ms 460 KB Output is correct
36 Correct 1 ms 564 KB Output is correct
37 Correct 1 ms 460 KB Output is correct
38 Correct 1 ms 588 KB Output is correct
39 Correct 1 ms 460 KB Output is correct
40 Correct 1 ms 588 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 0 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 452 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 0 ms 460 KB Output is correct
7 Correct 0 ms 460 KB Output is correct
8 Correct 1 ms 444 KB Output is correct
9 Correct 1 ms 456 KB Output is correct
10 Correct 0 ms 460 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 0 ms 444 KB Output is correct
13 Correct 0 ms 452 KB Output is correct
14 Correct 0 ms 460 KB Output is correct
15 Correct 1 ms 460 KB Output is correct
16 Correct 1 ms 460 KB Output is correct
17 Correct 1 ms 460 KB Output is correct
18 Correct 1 ms 444 KB Output is correct
19 Correct 1 ms 460 KB Output is correct
20 Correct 1 ms 448 KB Output is correct
21 Correct 1 ms 460 KB Output is correct
22 Correct 1 ms 460 KB Output is correct
23 Correct 1 ms 452 KB Output is correct
24 Correct 0 ms 448 KB Output is correct
25 Correct 0 ms 448 KB Output is correct
26 Correct 1 ms 460 KB Output is correct
27 Correct 1 ms 460 KB Output is correct
28 Correct 1 ms 460 KB Output is correct
29 Correct 1 ms 460 KB Output is correct
30 Correct 1 ms 460 KB Output is correct
31 Correct 1 ms 460 KB Output is correct
32 Correct 1 ms 460 KB Output is correct
33 Correct 1 ms 460 KB Output is correct
34 Correct 1 ms 460 KB Output is correct
35 Correct 1 ms 460 KB Output is correct
36 Correct 1 ms 564 KB Output is correct
37 Correct 1 ms 460 KB Output is correct
38 Correct 1 ms 588 KB Output is correct
39 Correct 1 ms 460 KB Output is correct
40 Correct 1 ms 588 KB Output is correct
41 Correct 8 ms 1100 KB Output is correct
42 Correct 10 ms 1740 KB Output is correct
43 Correct 6 ms 844 KB Output is correct
44 Correct 9 ms 1268 KB Output is correct
45 Correct 10 ms 1232 KB Output is correct
46 Correct 12 ms 1772 KB Output is correct
47 Correct 8 ms 1612 KB Output is correct
48 Correct 9 ms 1748 KB Output is correct
49 Correct 12 ms 1756 KB Output is correct
50 Correct 9 ms 1740 KB Output is correct
51 Correct 9 ms 1880 KB Output is correct
52 Correct 10 ms 1788 KB Output is correct
53 Correct 8 ms 1740 KB Output is correct
54 Correct 8 ms 1720 KB Output is correct
55 Correct 9 ms 1740 KB Output is correct
56 Correct 11 ms 1668 KB Output is correct
57 Correct 9 ms 1644 KB Output is correct
58 Correct 8 ms 1612 KB Output is correct
59 Correct 9 ms 1616 KB Output is correct
60 Correct 9 ms 1692 KB Output is correct
61 Correct 12 ms 1644 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 213 ms 20036 KB Output is correct
2 Correct 227 ms 19552 KB Output is correct
3 Correct 281 ms 19944 KB Output is correct
4 Correct 678 ms 50012 KB Output is correct
5 Correct 536 ms 55140 KB Output is correct
6 Correct 710 ms 55104 KB Output is correct
7 Correct 347 ms 54796 KB Output is correct
8 Correct 341 ms 55036 KB Output is correct
9 Correct 359 ms 55096 KB Output is correct
10 Correct 318 ms 55056 KB Output is correct
11 Correct 494 ms 55228 KB Output is correct
12 Correct 561 ms 55148 KB Output is correct
13 Correct 562 ms 55060 KB Output is correct
14 Correct 683 ms 55136 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 236 ms 20312 KB Output is correct
2 Correct 274 ms 19988 KB Output is correct
3 Correct 369 ms 20416 KB Output is correct
4 Correct 714 ms 54076 KB Output is correct
5 Correct 619 ms 54856 KB Output is correct
6 Correct 732 ms 53464 KB Output is correct
7 Correct 358 ms 53056 KB Output is correct
8 Correct 396 ms 55088 KB Output is correct
9 Correct 345 ms 52928 KB Output is correct
10 Correct 462 ms 52996 KB Output is correct
11 Correct 680 ms 53204 KB Output is correct
12 Correct 611 ms 55028 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 0 ms 460 KB Output is correct
3 Correct 1 ms 460 KB Output is correct
4 Correct 1 ms 452 KB Output is correct
5 Correct 1 ms 460 KB Output is correct
6 Correct 0 ms 460 KB Output is correct
7 Correct 0 ms 460 KB Output is correct
8 Correct 1 ms 444 KB Output is correct
9 Correct 1 ms 456 KB Output is correct
10 Correct 0 ms 460 KB Output is correct
11 Correct 1 ms 460 KB Output is correct
12 Correct 0 ms 444 KB Output is correct
13 Correct 0 ms 452 KB Output is correct
14 Correct 0 ms 460 KB Output is correct
15 Correct 1 ms 460 KB Output is correct
16 Correct 1 ms 460 KB Output is correct
17 Correct 1 ms 460 KB Output is correct
18 Correct 1 ms 444 KB Output is correct
19 Correct 1 ms 460 KB Output is correct
20 Correct 1 ms 448 KB Output is correct
21 Correct 1 ms 460 KB Output is correct
22 Correct 1 ms 460 KB Output is correct
23 Correct 1 ms 452 KB Output is correct
24 Correct 0 ms 448 KB Output is correct
25 Correct 0 ms 448 KB Output is correct
26 Correct 1 ms 460 KB Output is correct
27 Correct 1 ms 460 KB Output is correct
28 Correct 1 ms 460 KB Output is correct
29 Correct 1 ms 460 KB Output is correct
30 Correct 1 ms 460 KB Output is correct
31 Correct 1 ms 460 KB Output is correct
32 Correct 1 ms 460 KB Output is correct
33 Correct 1 ms 460 KB Output is correct
34 Correct 1 ms 460 KB Output is correct
35 Correct 1 ms 460 KB Output is correct
36 Correct 1 ms 564 KB Output is correct
37 Correct 1 ms 460 KB Output is correct
38 Correct 1 ms 588 KB Output is correct
39 Correct 1 ms 460 KB Output is correct
40 Correct 1 ms 588 KB Output is correct
41 Correct 8 ms 1100 KB Output is correct
42 Correct 10 ms 1740 KB Output is correct
43 Correct 6 ms 844 KB Output is correct
44 Correct 9 ms 1268 KB Output is correct
45 Correct 10 ms 1232 KB Output is correct
46 Correct 12 ms 1772 KB Output is correct
47 Correct 8 ms 1612 KB Output is correct
48 Correct 9 ms 1748 KB Output is correct
49 Correct 12 ms 1756 KB Output is correct
50 Correct 9 ms 1740 KB Output is correct
51 Correct 9 ms 1880 KB Output is correct
52 Correct 10 ms 1788 KB Output is correct
53 Correct 8 ms 1740 KB Output is correct
54 Correct 8 ms 1720 KB Output is correct
55 Correct 9 ms 1740 KB Output is correct
56 Correct 11 ms 1668 KB Output is correct
57 Correct 9 ms 1644 KB Output is correct
58 Correct 8 ms 1612 KB Output is correct
59 Correct 9 ms 1616 KB Output is correct
60 Correct 9 ms 1692 KB Output is correct
61 Correct 12 ms 1644 KB Output is correct
62 Correct 213 ms 20036 KB Output is correct
63 Correct 227 ms 19552 KB Output is correct
64 Correct 281 ms 19944 KB Output is correct
65 Correct 678 ms 50012 KB Output is correct
66 Correct 536 ms 55140 KB Output is correct
67 Correct 710 ms 55104 KB Output is correct
68 Correct 347 ms 54796 KB Output is correct
69 Correct 341 ms 55036 KB Output is correct
70 Correct 359 ms 55096 KB Output is correct
71 Correct 318 ms 55056 KB Output is correct
72 Correct 494 ms 55228 KB Output is correct
73 Correct 561 ms 55148 KB Output is correct
74 Correct 562 ms 55060 KB Output is correct
75 Correct 683 ms 55136 KB Output is correct
76 Correct 236 ms 20312 KB Output is correct
77 Correct 274 ms 19988 KB Output is correct
78 Correct 369 ms 20416 KB Output is correct
79 Correct 714 ms 54076 KB Output is correct
80 Correct 619 ms 54856 KB Output is correct
81 Correct 732 ms 53464 KB Output is correct
82 Correct 358 ms 53056 KB Output is correct
83 Correct 396 ms 55088 KB Output is correct
84 Correct 345 ms 52928 KB Output is correct
85 Correct 462 ms 52996 KB Output is correct
86 Correct 680 ms 53204 KB Output is correct
87 Correct 611 ms 55028 KB Output is correct
88 Correct 322 ms 20156 KB Output is correct
89 Correct 689 ms 53864 KB Output is correct
90 Correct 419 ms 25408 KB Output is correct
91 Correct 698 ms 54892 KB Output is correct
92 Correct 261 ms 20020 KB Output is correct
93 Correct 359 ms 20668 KB Output is correct
94 Correct 639 ms 43900 KB Output is correct
95 Correct 620 ms 55080 KB Output is correct
96 Correct 671 ms 55176 KB Output is correct
97 Correct 725 ms 55004 KB Output is correct
98 Correct 714 ms 54408 KB Output is correct
99 Correct 708 ms 54924 KB Output is correct
100 Correct 744 ms 53232 KB Output is correct
101 Correct 309 ms 55116 KB Output is correct
102 Correct 359 ms 55084 KB Output is correct
103 Correct 396 ms 55076 KB Output is correct
104 Correct 437 ms 54548 KB Output is correct
105 Correct 550 ms 53600 KB Output is correct
106 Correct 460 ms 55040 KB Output is correct
107 Correct 520 ms 55064 KB Output is correct
108 Correct 751 ms 55032 KB Output is correct
109 Correct 523 ms 55032 KB Output is correct
110 Correct 679 ms 53828 KB Output is correct
111 Correct 717 ms 55048 KB Output is correct
112 Correct 532 ms 53532 KB Output is correct
113 Correct 683 ms 53140 KB Output is correct
114 Correct 723 ms 55140 KB Output is correct
115 Correct 354 ms 53044 KB Output is correct
116 Correct 366 ms 53028 KB Output is correct
117 Correct 375 ms 53116 KB Output is correct
118 Correct 353 ms 52992 KB Output is correct
119 Correct 387 ms 53316 KB Output is correct
120 Correct 374 ms 53084 KB Output is correct