#include <bits/stdc++.h>
using namespace std;
int GetBestPosition(int N, int C, int R, int *K, int *S, int *E) {
int ans=0,bestWins=-1;
vector<int> pMax(N+5,0),tmp(N+5,0),tmp2(N+5,0);
vector<pair<int,int>> ln;
int wins=0;
for(int i=0;i<N-1;i++){
if(K[i]>R){
tmp[i+1]++;
tmp2[i]++;
wins++;
}
}
for(int i=0;i<N;i++){
tmp[i+1]+=tmp[i];
tmp2[N-1-i]+=tmp2[N-i];
ln.push_back({i,i});
}
for(int i=0;i<C;i++){
int l=ln[S[i]].first;
int r=ln[E[i]].second;
ln.erase(ln.begin()+S[i],ln.begin()+E[i]+1);
ln.insert(ln.begin()+S[i],{l,r});
if(tmp[l]+tmp2[r]==wins){
pMax[l]++;
pMax[r+1]--;
}
}
int sum=pMax[0];
for(int i=1;i<=N;i++){
pMax[i]+=pMax[i-1];
if(pMax[i]>bestWins){
bestWins=pMax[i];
ans=i;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |