P7910 RT
#include <iostream>
#include <algorithm>
typedef long long ll;
const ll maxn = 2e5 + 7;
using namespace std;
struct fsz {
ll cur;
ll idx;
};
ll n, m;
fsz a[maxn];
bool cmp(fsz b, fsz c) {
return b.cur < c.cur;
}
int main() {
cin >> n >> m;
for (ll i = 1; i <= n; i++) {
cin >> a[i].cur;
a[i].idx = i;
}
sort(a + 1, a + 1 + n, cmp);
for (ll i = 1; i <= m; i++) {
ll p;
cin >> p;
if (p == 1) {
ll x, v, k = 0;
cin >> x >> v;
for (ll j = 1; j <= n; j++) {
if (a[j].idx == x) {
k = j;
break;
}
}
a[k].cur=v;
if (a[k].cur > a[k + 1].cur) {
for (ll j = k; j < n; j++) {
if (a[j].cur > a[j + 1].cur) swap(a[j], a[j + 1]);
else break;
}
}
if(a[k].cur < a[k - 1].cur)
for (ll j = k; j > 1; j--) {
if (a[j].cur < a[j - 1].cur) swap(a[j], a[j-1]);
else break;
}
}
else {
ll u, k=0;
cin >> u;
for (ll j = 1; j <= n; j++) {
if (a[j].idx == u) {
k = j;
break;
}
}
cout << k<<endl;
}
}
return 0;
}