求助,J组T2为啥爆零了
  • 板块灌水区
  • 楼主V1mnkE
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/10/31 08:53
  • 上次更新2023/11/4 01:47:12
查看原帖
求助,J组T2为啥爆零了
477757
V1mnkE楼主2021/10/31 08:53
/*
#define CSP_RP 1145141919810
*/
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,q,x,k;
int a[8000];
int inb[8000];
struct p{
	int id,num;
}b[8000];
bool cmp(p a1,p b1){
	return a1.num<b1.num;
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>q;
	for(int i=0;i<n;i++){
		cin>>a[i];
		b[i].id=i;
		b[i].num=a[i];
	}
	sort(b,b+n,cmp); 
	for(int i=0;i<n;i++){
		inb[b[i].id]=i;
	}
	while(q--){
		cin>>k;
		if(k==1){
			int v;
			cin>>x>>v;
			int mid;
			for(mid=0;mid<n;mid++)if(b[mid].id==x-1)break;
			a[x-1]=v;
			if(b[mid].num>=v){
				b[mid].num=v;
				int i=mid;
				while(b[i].num>=b[i-1].num&&i>0)swap(b[i],b[i-1]),swap(inb[i],inb[i-1]),i--;
			
			}
			else {
				b[mid].num=v;
				int i=mid;
				while(b[i+1].num<=b[i].num&&i<n-1)swap(b[i],b[i+1]),swap(inb[i],inb[i+1]),i++;

			}
		}
		else{
			cin>>x;
			cout<<inb[x-1]+1<<endl;
		}
	}
	return 0;
}
2021/10/31 08:53
加载中...