#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
using namespace std;
using namespace __gnu_pbds;
using pii = pair<int,int>;
using piii = pair<int,pair<int,int>>;
#define N 100005
tree<pii,null_type,less<pii>,rb_tree_tag,tree_order_statistics_node_update> s;
tree<piii,null_type,less<piii>,rb_tree_tag,tree_order_statistics_node_update> q;
pair<int,int> seg[N];
int dp[N],ma=-1,ans;
vector<int> op[N];
int val(int l,int r){
if(l>r)return 0;
if(l)return dp[r]-dp[l-1];
return dp[r];
}
int ch(int l,int r,int m){
return val(l,m-1)+val(m,r-1);
}
int GetBestPosition(int n,int c,int R,int *K,int *S,int *E) {
int i,l,r,mid;
for(i=0;i<n;i++)s.insert({i,i});
for(i=0;i<c;i++){
auto l=s.find_by_order(S[i]),r=s.find_by_order(E[i]);
seg[i]={(*l).first,(*r).second};
r++;
while(l!=r)s.erase(l++);
s.insert(seg[i]);
op[seg[i].first].push_back(i+1);
op[seg[i].second+1].push_back(-i-1);
}
for(i=0;i<n-1;i++){
if(i)dp[i]+=dp[i-1];
dp[i]+=K[i]>R;
}
for(i=0;i<n;i++){
for(auto id:op[i]){
if(id>0)q.insert({id-1,seg[id-1]});
else q.erase({-id-1,seg[-id-1]});
}
l=0,r=((int)q.size())-1;
while(l<=r){
mid=(l+r)/2;
auto it=q.find_by_order(mid);
if(!ch((*it).second.first,(*it).second.second,i)){
if(mid>ma)ma=mid,ans=i;
l=mid+1;
}
else r=mid-1;
}
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
2644 KB |
Output is correct |
2 |
Correct |
1 ms |
2644 KB |
Output is correct |
3 |
Correct |
2 ms |
2644 KB |
Output is correct |
4 |
Correct |
2 ms |
2656 KB |
Output is correct |
5 |
Correct |
2 ms |
2660 KB |
Output is correct |
6 |
Correct |
2 ms |
2644 KB |
Output is correct |
7 |
Correct |
2 ms |
2644 KB |
Output is correct |
8 |
Correct |
3 ms |
2656 KB |
Output is correct |
9 |
Correct |
2 ms |
2644 KB |
Output is correct |
10 |
Correct |
2 ms |
2644 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
2644 KB |
Output is correct |
2 |
Correct |
10 ms |
3156 KB |
Output is correct |
3 |
Correct |
4 ms |
2900 KB |
Output is correct |
4 |
Correct |
9 ms |
3156 KB |
Output is correct |
5 |
Correct |
9 ms |
3156 KB |
Output is correct |
6 |
Correct |
6 ms |
3156 KB |
Output is correct |
7 |
Correct |
12 ms |
3156 KB |
Output is correct |
8 |
Correct |
11 ms |
3156 KB |
Output is correct |
9 |
Correct |
4 ms |
2900 KB |
Output is correct |
10 |
Correct |
9 ms |
3160 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
74 ms |
6660 KB |
Output is correct |
2 |
Correct |
281 ms |
13688 KB |
Output is correct |
3 |
Correct |
89 ms |
9968 KB |
Output is correct |
4 |
Correct |
243 ms |
11208 KB |
Output is correct |
5 |
Correct |
244 ms |
11288 KB |
Output is correct |
6 |
Correct |
160 ms |
10572 KB |
Output is correct |
7 |
Correct |
253 ms |
11508 KB |
Output is correct |
8 |
Correct |
253 ms |
11324 KB |
Output is correct |
9 |
Correct |
79 ms |
9684 KB |
Output is correct |
10 |
Correct |
89 ms |
9772 KB |
Output is correct |