- csp-j 2021
答案不可复制 仅供参考
- 2024-8-18 10:28:56 @
#include<bits/stdc++.h> using namespace std; int n,q,d,ds,d1,sum,Ans[10005],a[10005]; struct note{ int value,id; }b[10005]; int main(){ cin>>n>>q; for(int i=1;i<=n;i++){ cin>>a[i]; b[i].id=i; } for(int i=1;i<=n;i++)b[i].value=a[i]; for (int i = 1; i <= n; i++){ for (int j = i; j >= 2; j--){ if (b[j].value < b[j-1].value) { note t = b[j-1]; b[j-1] = b[j]; b[j] = t; } } for(int i=1;i<=n;i++){ Ans[b[i].id]=i; } }
while(q--){
cin>>ds;
if(ds==1){
cin>>d>>d1;
for(int i=1;i<=n;i++){
if(d==b[i].id){
b[i].value=d1;
for(int j=i;j>=2;j--){
if(b[j].value<b[j-1].value||(b[j].value==b[j-1].value&&b[j].id<b[j-1].id)){
note t=b[j-1];
b[j-1]=b[j];
b[j]=t;
}
}
for(int j=i;j<=n-1;j++){
if(b[j].value>b[j+1].value||(b[j].value==b[j+1].value&&b[j].id>b[j+1].id)){
note t=b[j+1];
b[j+1]=b[j];
b[j]=t;
}
}
}
}
for(int i=1;i<=n;i++){
Ans[b[i].id]=i;
}
}
else{
cin>>d;
cout<<Ans[d]<<endl;
}
}
return 0;
}
0 条评论
目前还没有评论...