提出 #55077176
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pl = pair<ll, ll>;
constexpr ll INF = 1e9 + 7;
constexpr ll mod = 1e9 + 7;
constexpr ld eps = 1e-9;
const ld PI = acos(-1);
struct node {
int mx;
node *l{nullptr}, *r{nullptr};
};
node *build(int l, int r) {
if (l + 1 == r) {
return new node(0);
}
int m = (r + l) / 2;
node *v = new node;
v->l = build(l, m);
v->r = build(m, r);
v->mx = max(v->l->mx, v->r->mx);
return v;
}
node *upd(node *v, int l, int r, int k, int x) {
if (l + 1 == r) {
return new node(x);
}
int m = (r + l) / 2;
node *nd = new node(*v);
if (k < m) nd->l = upd(v->l, l, m, k, x);
else nd->r = upd(v->r, m, r, k, x);
nd->mx = max(nd->l->mx, nd->r->mx);
return nd;
}
int get(node *v, int l, int r, int lq, int rq) {
if (l >= rq || lq >= r)return 0;
if (l >= lq && r <= rq)return v->mx;
int m = (r + l) / 2;
return max(get(v->l, l, m, lq, rq), get(v->r, m, r, lq, rq));
}
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int n;
cin >> n;
vector<int> all;
vector<int> a(n);
for (auto &i: a) {
cin >> i;
all.push_back(i - 1);
all.push_back(i - 2);
all.push_back(i);
all.push_back(i + 1);
all.push_back(i + 2);
}
all.push_back(-INF);
all.push_back(INF);
sort(all.begin(), all.end());
all.resize(unique(all.begin(), all.end()) - all.begin());
int K = all.size();
for (auto &i: a) {
i = lower_bound(all.begin(), all.end(), i) - all.begin();
}
vector<node *> t(n + 1);
t[n] = build(0, K);
for (int i = n - 1; ~i; --i) {
int val = get(t[i + 1], 0, K, a[i] + 1, K);
t[i] = upd(t[i + 1], 0, K, a[i], val + 1);
}
int res = 0;
node *tree = build(0, K);
pair<int, int> last = {0, 0};
for (int i = 0; i < n; ++i) {
int val = get(t[i + 1], 0, K, last.second + 2, K);
res = max(res, last.first + 1 + val);
int best = get(tree, 0, K, 0, a[i]);
tree = upd(tree, 0, K, a[i], best + 1);
last = {best + 1, a[i]};
}
cout << res;
return 0;
}
提出情報
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
625 / 625 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
00_sample_00.txt, 00_sample_01.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 01_internal_00.txt, 01_internal_01.txt, 01_internal_02.txt, 01_internal_03.txt, 01_internal_04.txt, 01_internal_05.txt, 01_internal_06.txt, 01_internal_07.txt, 01_internal_08.txt, 01_internal_09.txt, 01_internal_10.txt, 01_internal_11.txt, 01_internal_12.txt, 01_internal_13.txt, 01_internal_14.txt, 01_internal_15.txt, 01_internal_16.txt, 01_internal_17.txt, 01_internal_18.txt, 01_internal_19.txt, 01_internal_20.txt, 01_internal_21.txt, 01_internal_22.txt, 01_internal_23.txt, 01_internal_24.txt, 01_internal_25.txt, 01_internal_26.txt, 01_internal_27.txt, 01_internal_28.txt, 01_internal_29.txt, 01_internal_30.txt, 01_internal_31.txt, 01_internal_32.txt, 01_internal_33.txt, 01_internal_34.txt, 01_internal_35.txt, 01_internal_36.txt, 01_internal_37.txt, 01_internal_38.txt, 01_internal_39.txt, 01_internal_40.txt, 01_internal_41.txt, 01_internal_42.txt, 01_internal_43.txt, 01_internal_44.txt, 01_internal_45.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| 00_sample_00.txt |
AC |
1 ms |
3376 KiB |
| 00_sample_01.txt |
AC |
1 ms |
3408 KiB |
| 01_internal_00.txt |
AC |
1 ms |
3320 KiB |
| 01_internal_01.txt |
AC |
314 ms |
245016 KiB |
| 01_internal_02.txt |
AC |
29 ms |
27004 KiB |
| 01_internal_03.txt |
AC |
504 ms |
396020 KiB |
| 01_internal_04.txt |
AC |
98 ms |
71844 KiB |
| 01_internal_05.txt |
AC |
198 ms |
125952 KiB |
| 01_internal_06.txt |
AC |
358 ms |
176948 KiB |
| 01_internal_07.txt |
AC |
486 ms |
250340 KiB |
| 01_internal_08.txt |
AC |
481 ms |
249292 KiB |
| 01_internal_09.txt |
AC |
499 ms |
229188 KiB |
| 01_internal_10.txt |
AC |
442 ms |
202792 KiB |
| 01_internal_11.txt |
AC |
418 ms |
195536 KiB |
| 01_internal_12.txt |
AC |
481 ms |
219948 KiB |
| 01_internal_13.txt |
AC |
467 ms |
213624 KiB |
| 01_internal_14.txt |
AC |
80 ms |
71876 KiB |
| 01_internal_15.txt |
AC |
68 ms |
59312 KiB |
| 01_internal_16.txt |
AC |
68 ms |
59164 KiB |
| 01_internal_17.txt |
AC |
123 ms |
114120 KiB |
| 01_internal_18.txt |
AC |
160 ms |
146616 KiB |
| 01_internal_19.txt |
AC |
152 ms |
139928 KiB |
| 01_internal_20.txt |
AC |
221 ms |
189464 KiB |
| 01_internal_21.txt |
AC |
211 ms |
183520 KiB |
| 01_internal_22.txt |
AC |
169 ms |
153856 KiB |
| 01_internal_23.txt |
AC |
332 ms |
248204 KiB |
| 01_internal_24.txt |
AC |
318 ms |
239468 KiB |
| 01_internal_25.txt |
AC |
268 ms |
214164 KiB |
| 01_internal_26.txt |
AC |
387 ms |
286396 KiB |
| 01_internal_27.txt |
AC |
246 ms |
202596 KiB |
| 01_internal_28.txt |
AC |
415 ms |
306892 KiB |
| 01_internal_29.txt |
AC |
77 ms |
59140 KiB |
| 01_internal_30.txt |
AC |
68 ms |
59172 KiB |
| 01_internal_31.txt |
AC |
69 ms |
59148 KiB |
| 01_internal_32.txt |
AC |
162 ms |
105252 KiB |
| 01_internal_33.txt |
AC |
213 ms |
132736 KiB |
| 01_internal_34.txt |
AC |
229 ms |
142112 KiB |
| 01_internal_35.txt |
AC |
390 ms |
185436 KiB |
| 01_internal_36.txt |
AC |
386 ms |
185236 KiB |
| 01_internal_37.txt |
AC |
288 ms |
159016 KiB |
| 01_internal_38.txt |
AC |
321 ms |
166952 KiB |
| 01_internal_39.txt |
AC |
629 ms |
250560 KiB |
| 01_internal_40.txt |
AC |
555 ms |
232384 KiB |
| 01_internal_41.txt |
AC |
795 ms |
315756 KiB |
| 01_internal_42.txt |
AC |
481 ms |
212276 KiB |
| 01_internal_43.txt |
AC |
728 ms |
284708 KiB |
| 01_internal_44.txt |
AC |
1 ms |
3436 KiB |
| 01_internal_45.txt |
AC |
1 ms |
3468 KiB |