0分菜鸡求助!!!
#include<bits/stdc++.h>
using namespace std;
struct node {
int idx,val;
} a[8001];
int b[8001];
bool cmp(node x,node y) {
if(x.val==y.val) return x.idx<y.idx;
return x.val<y.val;
}
int main() {
int n,q,s,v,x;
cin>>n>>q;
for(int i=1; i<=n; i++) {
cin>>a[i].val;
a[i].idx=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1; i<=n; i++) {
b[a[i].idx]=i;
}
for(int i=0; i<q; i++) {
cin>>s;
if(s==1) {
cin>>x>>v;
if(v>a[b[x]].val) {
a[b[x]].val=v;
for(int i=b[x]; i<n; i++) {
if(a[i].val>a[i+1].val||(a[i].val==a[i+1].val&&a[i].idx>a[i+1].idx)) {
swap(a[i],a[i+1]);
}
}
} else {
a[b[x]].val=v;
for(int i=b[x]; i>1; i--) {
if(a[i].val<a[i-1].val||(a[i].val==a[i-1].val&&a[i].idx<a[i-1].idx)) {
swap(a[i],a[i-1]);
}
}
}
for(int i=1;i<=n;i++){
b[a[i].idx]=1;
}
}else{
cin>>x;
cout<<b[x];
}
}
return 0;
}