#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define sz(x) (int)x.size()
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
template <class T> using indexed_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
int n,c,r;
vector<int> as[100005],rs[100005];
int rmq[100005][20];
int get_max(int l, int r)
{
int j = log2(r - l);
return max(rmq[l][j], rmq[r - (1<<j)][j]);
}
int GetBestPosition(int N, int C, int R, int *K, int *S, int *E)
{
n = N, c = C, r = R;
indexed_set<int> os;
for(int i = 0; i < n - 1; i++)
rmq[i][0] = K[i];
for(int j = 1; j < 20; j++)
for(int i = 0; i + (1<<j) - 1 < n; i++)
rmq[i][j] = max(rmq[i][j - 1], rmq[i + (1<<(j - 1))][j - 1]);
for(int i = 0; i <= n; i++)
os.insert(i);
for(int i = 0; i < c; i++)
{
int st = *os.find_by_order(S[i]);
int ed = *os.find_by_order(E[i] + 1) - 1;
for(int j = S[i] + 1; j <= E[i]; j++)
os.erase(os.find_by_order(S[i] + 1));
S[i] = st, E[i] = ed;
}
for(int i = 0; i < c; i++)
{
as[S[i]].pb(i);
rs[E[i] + 1].pb(i);
}
int cnt = 0, ans = 0, po;
for(int i = 0; i < n; i++)
{
for(auto j: rs[i])
{
// printf("%d %d %d\n",S[j],E[j],get_max(S[j], E[j]));
if(get_max(S[j], E[j]) < r)
cnt--;
}
for(auto j: as[i])
{
// printf("%d %d %d\n",S[j],E[j],get_max(S[j], E[j]));
if(get_max(S[j], E[j]) < r)
cnt++;
}
if(cnt > ans)
{
ans = cnt;
po = i;
}
// printf("%d\n",ans);
}
return po;
}
Compilation message
tournament.cpp: In function 'int GetBestPosition(int, int, int, int*, int*, int*)':
tournament.cpp:73:12: warning: 'po' may be used uninitialized in this function [-Wmaybe-uninitialized]
73 | return po;
| ^~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
4948 KB |
Output is correct |
2 |
Correct |
3 ms |
4948 KB |
Output is correct |
3 |
Correct |
3 ms |
5076 KB |
Output is correct |
4 |
Correct |
4 ms |
5076 KB |
Output is correct |
5 |
Correct |
3 ms |
5076 KB |
Output is correct |
6 |
Correct |
4 ms |
5012 KB |
Output is correct |
7 |
Correct |
3 ms |
5016 KB |
Output is correct |
8 |
Correct |
3 ms |
5092 KB |
Output is correct |
9 |
Correct |
3 ms |
5076 KB |
Output is correct |
10 |
Correct |
5 ms |
5076 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
5076 KB |
Output is correct |
2 |
Correct |
7 ms |
5660 KB |
Output is correct |
3 |
Correct |
6 ms |
5660 KB |
Output is correct |
4 |
Correct |
7 ms |
5716 KB |
Output is correct |
5 |
Correct |
6 ms |
5716 KB |
Output is correct |
6 |
Correct |
7 ms |
5768 KB |
Output is correct |
7 |
Correct |
7 ms |
5716 KB |
Output is correct |
8 |
Correct |
8 ms |
5716 KB |
Output is correct |
9 |
Correct |
6 ms |
5588 KB |
Output is correct |
10 |
Correct |
9 ms |
5788 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
67 ms |
11752 KB |
Output is correct |
2 |
Correct |
134 ms |
20360 KB |
Output is correct |
3 |
Correct |
92 ms |
18624 KB |
Output is correct |
4 |
Correct |
123 ms |
20304 KB |
Output is correct |
5 |
Correct |
121 ms |
19660 KB |
Output is correct |
6 |
Correct |
163 ms |
19656 KB |
Output is correct |
7 |
Correct |
127 ms |
20312 KB |
Output is correct |
8 |
Correct |
127 ms |
20368 KB |
Output is correct |
9 |
Correct |
82 ms |
18460 KB |
Output is correct |
10 |
Correct |
99 ms |
18608 KB |
Output is correct |