蒟蒻求助56分
查看原帖
蒟蒻求助56分
49884
_Technoblade楼主2021/10/27 14:55
#include<bits/stdc++.h>
using namespace std;
int a[8005],c[8005];
int n,q;
int y,z;
struct node{
	int a,m;
}b[8005];
void refresh(){
	for(int i=1;i<=n;i++)
		c[b[i].m]=i;
}
void sort(){
	int w;
	for(int i=1;i<=n;i++)
		if(b[i].m==y){
			w=i;
			break;
		}
	b[w].a=z;
	for(int i=n;i>=2;i--)
		if(b[i].a<b[i-1].a)
			swap(b[i],b[i-1]);
	for(int i=1;i<n;i++)
		if(b[i].a>b[i+1].a)
			swap(b[i],b[i+1]);
	refresh();
}
int main(){
	//freopen("sort.in","r",stdin);
	//freopen("sort.out","w",stdout);
	cin>>n>>q;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++) 			b[i].a=a[i],b[i].m=i;
	for(int i=1;i<=n;i++){
		for(int j=i;j>=2;j--){
			if(b[j].a<b[j-1].a){
				swap(b[j],b[j-1]);
			}
		}
	}
	refresh();
	while(q--){
		int x;
		cin>>x;
		if(x==1){
			cin>>y>>z;
			a[y]=z;
			sort();
		}
		if(x==2){
			int z;
			cin>>z;
			cout<<c[z]<<endl;
		}
	}
    return 0;
}
2021/10/27 14:55
加载中...