#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
template <typename t>
using pbds = tree<t,null_type,less<t>,rb_tree_tag,tree_order_statistics_node_update>;
const int MN = 2e5 + 5;
int GetBestPosition(int n, int c, int rnk, int *k, int *s, int *e) {
vector<vector<int>> sp(__lg(n)+1,vector<int>(n));
for (int i = 1; i < n; i++) sp[0][i] = k[i-1];
for (int j = 1; j <= __lg(n); j++)
for (int i = 1; i + (1 << j) - 1 < n; i++)
sp[j][i] = max(sp[j-1][i],sp[j-1][i+(1<<(j-1))]);
auto query = [&] (int l, int r) {
int lg = __lg(r-l+1);
int ret = max(sp[lg][l],sp[lg][r-(1<<lg)+1]);
return ret;
};
vector<vector<int>> st(n+1),ed(n+1); pbds<int> l,r;
for (int i = 1; i <= n; i++) l.insert(i), r.insert(i);
for (int i = 0; i < c; i++) {
int sz = e[i] - s[i] + 1;
int lb = *l.find_by_order(s[i]), rb = *r.find_by_order(e[i]);
for (int j = 1; j < sz; j++) l.erase(l.find_by_order(s[i] + 1)), r.erase(r.find_by_order(e[i] - j));
st[lb].emplace_back(rb); ed[rb].emplace_back(lb);
}
int cur = 0, best = -1, ret = -1;
for (int i = 1; i <= n; i++) {
for (int j : st[i]) if (query(i,j-1) < rnk) ++cur;
if (cur > best) {
best = cur;
ret = i-1;
}
for (int j : ed[i]) if (query(j,i-1) < rnk) --cur;
}
return ret;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
1 ms |
384 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
1 ms |
416 KB |
Output is correct |
7 |
Correct |
1 ms |
384 KB |
Output is correct |
8 |
Correct |
1 ms |
384 KB |
Output is correct |
9 |
Correct |
1 ms |
512 KB |
Output is correct |
10 |
Correct |
1 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
508 KB |
Output is correct |
2 |
Correct |
8 ms |
1408 KB |
Output is correct |
3 |
Correct |
6 ms |
1280 KB |
Output is correct |
4 |
Correct |
8 ms |
1408 KB |
Output is correct |
5 |
Correct |
7 ms |
1280 KB |
Output is correct |
6 |
Correct |
8 ms |
1408 KB |
Output is correct |
7 |
Correct |
8 ms |
1408 KB |
Output is correct |
8 |
Correct |
8 ms |
1408 KB |
Output is correct |
9 |
Correct |
6 ms |
1280 KB |
Output is correct |
10 |
Correct |
10 ms |
1408 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
133 ms |
11696 KB |
Output is correct |
2 |
Correct |
237 ms |
23924 KB |
Output is correct |
3 |
Correct |
192 ms |
22256 KB |
Output is correct |
4 |
Correct |
231 ms |
23920 KB |
Output is correct |
5 |
Correct |
231 ms |
23036 KB |
Output is correct |
6 |
Correct |
291 ms |
23280 KB |
Output is correct |
7 |
Correct |
241 ms |
23920 KB |
Output is correct |
8 |
Correct |
233 ms |
23920 KB |
Output is correct |
9 |
Correct |
198 ms |
22000 KB |
Output is correct |
10 |
Correct |
196 ms |
22128 KB |
Output is correct |