const int Z = 1 << 17;
int next[Z],cnt[Z*2];
int getnth(int n)
{
int x = 1;
while (x < Z){
x <<= 1;
if (cnt[x] < n) n -= cnt[x++];
}
return x - Z;
}
void up(int x, int p)
{
x += Z;
while (x){
cnt[x] += p;
x >>= 1;
}
}
int maxtree[Z*2],res[Z];
int max(int a, int b){return a > b ? a : b;}
int GetBestPosition(int N, int C, int R, int *K, int *S, int *E) {
int i,peo,x,y,r;
for (i=0;i<N;i++) next[i] = i+1, cnt[i+Z] = 1;
for (i=Z-1;i>=1;i--) cnt[i] = cnt[i*2] + cnt[i*2+1];
for (i=0;i<C;i++){
peo = E[i] - S[i] + 1;
S[i] = x = getnth(S[i]+1);
up(x,1);
while (peo--){
up(x,-1);
x = next[x];
}
E[i] = x - 1;
next[S[i]] = x;
}
for (i=0;i<N-1;i++) maxtree[i+Z] = K[i];
for (i=Z-1;i>=1;i--) maxtree[i] = max(maxtree[i*2],maxtree[i*2+1]);
for (i=0;i<C;i++){
x = S[i] + Z; y = E[i] - 1 + Z; r = 0;
while (x < y){
if (x & 1) r = max(r,maxtree[x++]);
if (~y & 1) r = max(r,maxtree[y--]);
x >>= 1; y >>= 1;
} if (x == y) r = max(r,maxtree[x]);
if (r < R){
res[S[i]]++;
res[E[i]]--;
}
}
int s = 0, p = -1, ind;
for (i=0;i<N;i++){
s += res[i];
if (p < s){
p = s; ind = i;
}
}
return ind;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
3984 KB |
Output is correct |
2 |
Correct |
0 ms |
3984 KB |
Output is correct |
3 |
Correct |
2 ms |
3984 KB |
Output is correct |
4 |
Correct |
0 ms |
3984 KB |
Output is correct |
5 |
Correct |
0 ms |
3984 KB |
Output is correct |
6 |
Correct |
0 ms |
3984 KB |
Output is correct |
7 |
Correct |
0 ms |
3984 KB |
Output is correct |
8 |
Correct |
1 ms |
3984 KB |
Output is correct |
9 |
Correct |
0 ms |
3984 KB |
Output is correct |
10 |
Correct |
0 ms |
3984 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
3984 KB |
Output is correct |
2 |
Correct |
3 ms |
3984 KB |
Output is correct |
3 |
Correct |
1 ms |
3984 KB |
Output is correct |
4 |
Correct |
3 ms |
3984 KB |
Output is correct |
5 |
Correct |
3 ms |
3984 KB |
Output is correct |
6 |
Correct |
3 ms |
3984 KB |
Output is correct |
7 |
Correct |
2 ms |
3984 KB |
Output is correct |
8 |
Correct |
1 ms |
3984 KB |
Output is correct |
9 |
Correct |
0 ms |
3984 KB |
Output is correct |
10 |
Correct |
4 ms |
3984 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
4428 KB |
Output is correct |
2 |
Correct |
62 ms |
5128 KB |
Output is correct |
3 |
Correct |
18 ms |
4376 KB |
Output is correct |
4 |
Correct |
63 ms |
5128 KB |
Output is correct |
5 |
Correct |
63 ms |
5092 KB |
Output is correct |
6 |
Correct |
49 ms |
4864 KB |
Output is correct |
7 |
Correct |
65 ms |
5128 KB |
Output is correct |
8 |
Correct |
61 ms |
5128 KB |
Output is correct |
9 |
Correct |
15 ms |
4376 KB |
Output is correct |
10 |
Correct |
18 ms |
4376 KB |
Output is correct |