#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<class T>
struct rbt: tree<T,int,less<T>,
rb_tree_tag,tree_order_statistics_node_update>{};
typedef pair<int,int> pii;
#define fi first
#define se second
#define SZ 666666
rbt<pii> s; int fa[SZ];
pii gs[SZ]; int gn=0,su[SZ];
vector<int> ch[SZ];
pii ans(-1,0);
void dfs(int t,int d=0,int s=0)
{
s+=(su[gs[t].se]-su[gs[t].fi]==0);
if(gs[t].fi==gs[t].se)
ans=max(ans,pii(s-1,-gs[t].fi));
for(auto c:ch[t]) dfs(c,d+1,s);
}
int GetBestPosition(int N, int C, int R, int *K, int *S, int *E)
{
gn=0; ans=pii(-1,0); s.clear();
for(int i=0;i<N;++i)
gs[++gn]=pii(i,i),
fa[gn]=0,ch[gn].clear(),
s[pii(i,i)]=gn;
for(int i=0;i<N-1;++i)
su[i+1]=su[i]+(K[i]>=R);
for(int i=0;i<C;++i)
{
auto g=s.find_by_order(S[i]);
int L=g->fi.fi,R; ++gn;
fa[gn]=0; ch[gn].clear();
for(int j=1;j<=E[i]-S[i]+1;++j)
R=g->fi.se,fa[g->se]=gn,
ch[gn].push_back(g->se),
s.erase(g++);
gs[gn]=pii(L,R);
s[pii(L,R)]=gn;
}
dfs(gn); return -ans.se;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
13 ms |
15992 KB |
Output is correct |
2 |
Correct |
13 ms |
15992 KB |
Output is correct |
3 |
Correct |
14 ms |
16120 KB |
Output is correct |
4 |
Correct |
13 ms |
16120 KB |
Output is correct |
5 |
Correct |
16 ms |
15992 KB |
Output is correct |
6 |
Correct |
15 ms |
15992 KB |
Output is correct |
7 |
Correct |
16 ms |
15992 KB |
Output is correct |
8 |
Correct |
13 ms |
15992 KB |
Output is correct |
9 |
Correct |
13 ms |
15992 KB |
Output is correct |
10 |
Correct |
13 ms |
15992 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
14 ms |
16120 KB |
Output is correct |
2 |
Correct |
20 ms |
16804 KB |
Output is correct |
3 |
Correct |
16 ms |
16504 KB |
Output is correct |
4 |
Correct |
18 ms |
16632 KB |
Output is correct |
5 |
Correct |
18 ms |
16760 KB |
Output is correct |
6 |
Correct |
20 ms |
16632 KB |
Output is correct |
7 |
Correct |
18 ms |
16760 KB |
Output is correct |
8 |
Correct |
18 ms |
16704 KB |
Output is correct |
9 |
Correct |
16 ms |
16376 KB |
Output is correct |
10 |
Correct |
20 ms |
16632 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
83 ms |
20792 KB |
Output is correct |
2 |
Correct |
182 ms |
31984 KB |
Output is correct |
3 |
Correct |
112 ms |
25080 KB |
Output is correct |
4 |
Correct |
168 ms |
29432 KB |
Output is correct |
5 |
Correct |
169 ms |
30216 KB |
Output is correct |
6 |
Correct |
180 ms |
26652 KB |
Output is correct |
7 |
Correct |
172 ms |
30200 KB |
Output is correct |
8 |
Correct |
174 ms |
30328 KB |
Output is correct |
9 |
Correct |
87 ms |
24824 KB |
Output is correct |
10 |
Correct |
114 ms |
25080 KB |
Output is correct |