#include<bits/stdc++.h>
using namespace std;
int check(int j, int rank, vector<int> &knights, vector<pair<int, int>> &query){
vector<int> x;
for(int i = 0; i < j; ++i){
x.push_back(knights[i]);
}
x.push_back(rank);
for(int i = j; i < (int)knights.size(); ++i){
x.push_back(knights[i]);
}
int ans = 0;
for(auto e:query){
vector<int> nx;
for(int i = 0; i < e.first; ++i){
nx.push_back(x[i]);
}
int mx = -1;
for(int i = e.first; i <= e.second; ++i){
mx = max(mx, x[i]);
}
if(mx == rank){
ans++;
}
nx.push_back(mx);
for(int i = e.second+1; i < (int)x.size(); ++i){
nx.push_back(x[i]);
}
x = nx;
}
return ans;
}
int GetBestPosition(int N, int C, int R, int *K, int *S, int *E) {
vector<pair<int, int>> x;
int lk = R;
vector<int> knights;
for(int i = 0; i < N-1; ++i){
knights.push_back(K[i]);
}
for(int i = 0; i < C; ++i){
x.push_back({S[i], E[i]});
}
int ans = -1;
int pos = 0;
for(int i = 0; i < N-1; ++i){
int an = check(i, lk, knights, x);
if(an > ans){
ans = an;
pos = i;
}
}
return pos;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |