- 8月集训Day04复现赛
#B. 排序
- @ 2024-8-12 18:56:46
#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int arr[100005];
struct node{
int z;
int cnt;
}brr[100005];
int n,q;
bool cmp(node a,node b){
if(a.z<b.z) return 1;
else if(a.z>b.z) return 0;
else return a.cnt<b.cnt;
}
int main(){
freopen("sort.in","r",stdin);
freopen("sort.out","w",stdout);
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>brr[i].z;
brr[i].cnt=i;
}
sort(brr+1,brr+1+n,cmp);
for(int i=1;i<=n;i++) arr[brr[i].cnt]=i;
while(q--){
int c,x,y;
cin>>c;
if(c==1){
cin>>x>>y;
brr[arr[x]].z=y;
for(int i=n;i>=2;i--){
if(cmp(brr[i],brr[i-1])){
node t=brr[i];
brr[i]=brr[i-1];
brr[i-1]=t;
}
}
for(int i=2;i<=n;i++){
if(cmp(brr[i],brr[i-1])){
node t=brr[i];
brr[i]=brr[i-1];
brr[i-1]=t;
}
}
for(int i=1;i<=n;i++){
arr[brr[i].cnt]=i;
}
}else{
cin>>x;
cout<<arr[x]<<endl;
}
}
return 0;
}
0 条评论
目前还没有评论...