0分求助!!!
查看原帖
0分求助!!!
401522
David_Li_楼主2021/11/26 21:28

0分菜鸡求助!!!

#include<bits/stdc++.h>
using namespace std;
struct node {
	int idx,val;
} a[8001];
int b[8001];
bool cmp(node x,node y) {
	if(x.val==y.val) return x.idx<y.idx;
	return x.val<y.val;
}

int main() {
	int n,q,s,v,x;
	cin>>n>>q;
	for(int i=1; i<=n; i++) {
		cin>>a[i].val;
		a[i].idx=i;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=1; i<=n; i++) {
		b[a[i].idx]=i;
	}
	for(int i=0; i<q; i++) {
		cin>>s;
		if(s==1) {
			cin>>x>>v;
			if(v>a[b[x]].val) {
				a[b[x]].val=v;
				for(int i=b[x]; i<n; i++) {
					if(a[i].val>a[i+1].val||(a[i].val==a[i+1].val&&a[i].idx>a[i+1].idx)) {
						swap(a[i],a[i+1]);
					}
				}
			} else {
				a[b[x]].val=v;
				for(int i=b[x]; i>1; i--) {
					if(a[i].val<a[i-1].val||(a[i].val==a[i-1].val&&a[i].idx<a[i-1].idx)) {
						swap(a[i],a[i-1]);
					}
				}
			}
			for(int i=1;i<=n;i++){
				b[a[i].idx]=1;
			}
		}else{
			cin>>x;
			cout<<b[x];
		}
	}
	return 0;
}
2021/11/26 21:28
加载中...