8分,求调
查看原帖
8分,求调
443023
chenkuo楼主2023/10/16 17:48
#include<bits/stdc++.h>
#define longint long long
using namespace std;
inline longint read(){
	char ch=getchar();longint x=0;bool flag=0;
	while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
	if(ch=='-') flag=1,ch=getchar();
	while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
	if(flag) return -x;return x;
}
longint n,q,x,y,z;
struct asd{
	longint zh,wei;
}a[8001];
bool cmp(asd a,asd b){
	if(a.zh==b.zh) return a.wei<b.wei;
	return a.zh<b.zh;
}
int main(){
//	freopen("sort.in","r",stdin);
//	freopen("sort.out","w",stdout);
	n=read();q=read();
	for(int i=1;i<=n;i++) a[i].zh=read(),a[i].wei=i;
	sort(a+1,a+n+1,cmp);
	while(q--){
		x=read();
		if(x==1){
			y=read();z=read();
			for(longint i=1;i<=n;i++){
				if(a[i].wei==y){
					if(a[i].zh<z){
						a[i].zh=z;
						for(longint j=i;j<n;j++){
							if(a[i].zh>a[i+1].zh) swap(a[i],a[i+1]);
							else if(a[i].zh==a[i+1].zh&&a[i].wei>a[i+1].wei) swap(a[i],a[i+1]);
							else break;
						}
					}else{
						a[i].zh=z;
						for(longint j=i;j>1;j--){
							if(a[i].zh<a[i-1].zh) swap(a[i],a[i-1]);
							else if(a[i].zh==a[i-1].zh&&a[i].wei<a[i-1].wei) swap(a[i],a[i-1]);
							else break;
						}
					}
					break;
				}
			} 
		}
		if(x==2){
			y=read();
			for(longint i=1;i<=n;i++){
				if(a[i].wei==y){
					printf("%lld\n",i);
					break;
				}
			}
		}
	}
}
/*
3 4
3 2 1
2 3
1 3 2
2 2
2 3
*/
2023/10/16 17:48
加载中...