求助大佬把代码写完
查看原帖
求助大佬把代码写完
680924
aizehao123楼主2022/10/4 16:00
#include<bits/stdc++.h>
using namespace std;
int n,q,pd,x,v,t[8005],s;
struct T{
	int val,pos;
}a[8005];
bool cmp(T a,T b){
	if(a.val==b.val) return a.pos<b.pos;
	else return a.val<b.val;
}
int main(){
	cin>>n>>q;
	for(int i=1;i<=n;i++){
		cin>>a[i].val;
		a[i].pos=i;
	}
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++) t[a[i].pos]=i;
	for(int j=1;j<=q;j++){
		cin>>pd;
		if(pd==1){
			cin>>x>>v;
			int tmp=t[a[x].val];
			if(v>a[tmp].val){
				for(int i=tmp;i<n;i++){
					if(cmp(a[i],a[i+1])){
						swap(a[i],a[i+1]);
					}
				}
			}
			for(int i=1;i<=n;i++){
				t[a[i].pos]=i;
			}
			a[t[x]].val=v;
		}else{
			cin>>x;
			cout<<t[x]<<endl;
		}
	}
	return 0;
}
2022/10/4 16:00
加载中...