This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
const int inf = 1012345678;
int main() {
cin.tie(0);
ios_base::sync_with_stdio(false);
int N, A, Q;
cin >> N >> A; --A;
vector<int> d(N);
for (int i = 0; i < N; ++i) cin >> d[i];
function<vector<int>(void)> get_perm = [&]() {
vector<int> ans(N);
int L = A - 1, R = A + 1;
for (int i = 1; i < N; ++i) {
int getl = (L == -1 ? inf : d[L]);
int getr = (R == N ? inf : d[R]);
if (getl < getr) ans[L] = i, --L;
else ans[R] = i, ++R;
}
return ans;
};
vector<int> perm = get_perm();
cin >> Q;
for (int i = 0; i < Q; ++i) {
string tp;
cin >> tp;
if (tp == "E") {
int pos, e;
cin >> pos >> e; --pos, --e;
for (int j = 0; j < N; ++j) {
if (d[pos] < d[j] && d[j] <= N - e) {
--d[j];
}
}
d[pos] = N - e;
perm = get_perm();
}
else {
int pos;
cin >> pos; --pos;
cout << perm[pos] << '\n';
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |