此代码在某某OJ上TLE了:
#include<bits/stdc++.h>
using namespace std;
int n,q,t[8005];
struct date{
int num,id;
}a[8005];
bool operator < (date x,date y){
if(x.num!=y.num)return x.num<y.num;
return x.id<y.id;
}
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i].num;
a[i].id=i;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
t[a[i].id]=i;
}
while(q--){
int oo,x,y;
cin>>oo>>x;
if(oo==1){
cin>>y;
a[t[x]].num=y;
for(int j=n;j>=2;j--)
if(a[j]<a[j-1]){
swap(a[j],a[j-1]);
}
for(int j=2;j<=n;j++)
if(a[j]<a[j-1]){
swap(a[j],a[j-1]);
}
for(int i=1;i<=n;i++){
t[a[i].id]=i;
}
}else{
cout<<t[x]<<endl;
}
}
return 0;
}
求大佬帮优化!!!