RT,我貌似只拿了四分
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,q,x,k;
int a[8000];
int inb[8000];
struct p{
int id,num;
}b[8000];
bool cmp(p a1,p b1){
return a1.num<b1.num;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>q;
for(int i=0;i<n;i++){
cin>>a[i];
b[i].id=i;
b[i].num=a[i];
}
for (int i = 0; i < n; i++)
for (int j = i; j>=1; j--)
if ( b[j].num<b[j-1].num)swap(b[j],b[j-1]);
for(int i=0;i<n;i++){
inb[b[i].id]=i;
}
while(q--){
cin>>k;
if(k==1){
int v;
cin>>x>>v;
int mid;
for(mid=0;mid<n;mid++)if(b[mid].id==x-1)break;
a[x-1]=v;
if(b[mid].num>=v){
b[mid].num=v;
int i=mid;
while(b[i].num>=b[i-1].num&&i>0)swap(b[i],b[i-1]),swap(inb[i],inb[i-1]),i--;
}
else {
b[mid].num=v;
int i=mid;
while(b[i+1].num<=b[i].num&&i<n-1)swap(b[i],b[i+1]),swap(inb[i],inb[i+1]),i++;
}
}
else{
cin>>x;
cout<<inb[x-1]+1<<endl;
}
}
return 0;
}