求助,老是报错,求大佬们看看为啥运行不了?
查看原帖
求助,老是报错,求大佬们看看为啥运行不了?
673289
LGSTZ798932楼主2022/8/12 12:46
/*3 4
3 2 1
2 3
1 3 2
2 2
2 3*/
#include <iostream>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
int n,q,s[100050],type,x,y,i;
struct s{
	int num;
	int xb;
}a[100050];
int cmp(s x,s y){
	if(x.num==y.num){
		return x.xb<y.xb;
	}else{
		return x.num<y.num;
	}
}
int main(){
	cin>>n>>q;
	for(i=1;i<=n;i++){
		cin>>a[i].num;
		a[i].xb=i;
	}
	sort(a+1,a+n+1,cmp);
	for(i=1;i<=n;i++){
		s[a[i].xb]=i;
	}
	while(q!=0){
		cin>>type;
		if(type==2){
			cin>>x;
			cout<<s[x]<<endl;
		}else{
			cin>>x>>y;
			a[w[x]].num=y;
			for(i=s[x];i>=2;i--){
				if(a[i].num<a[i-1].num || (a[i].num==a[i-1].num && a[i].xb<a[i-1].xb)){
					swap(a[i],a[i-1]);
				}
			}
			for(i=s[x];i<n;i++){
				if(a[i].num>a[i+1].num || (a[i].num==a[i+1].num && a[i].xb>a[i+1].xb)){
					swap(a[i],a[i+1]);
				}
			}
			for(i=1;i<=n;i++){
				s[a[i].xb]=i;
			}
		}
		q--;
	}
	return 0;
}

运行好多次了

老实说无法运行

为啥呀???

求求了

2022/8/12 12:46
加载中...