求大神帮助AC,25数据3错(17,24,25),88分
查看原帖
求大神帮助AC,25数据3错(17,24,25),88分
531207
July14th楼主2022/8/14 12:53
#include<bits/stdc++.h>
using namespace std;
long long n,Q;
long long a[8050];
long long ax[8050];
long long b[8055];
long long bx[8055];
int main(){
	cin>>n>>Q;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		ax[i]=i;
	}
	memcpy(b,a,sizeof(a));
	memcpy(bx,ax,sizeof(ax));
	for(int i=2;i<=n;i++){
		for(int j=i;j>=2;j--){
			if(a[j]<a[j-1]){
				int t=a[j-1];
				int tx=ax[j-1];
				a[j-1]=a[j];
				ax[j-1]=ax[j];
				a[j]=t;
				ax[j]=tx;
			}
			if(a[j]==a[j-1]&&ax[j]<ax[j-1]){
				int t=a[j-1];
				int tx=ax[j-1];
				a[j-1]=a[j];
				ax[j-1]=ax[j];
				a[j]=t;
				ax[j]=tx;
			}
		}
	}
	int input;
	for(int j=0;j<Q;j++){
		cin>>input;		
		if(input==1){
			long long x,v;
			cin>>x>>v;
			b[x]=v;
			for(int i=1;i<=n;i++){
				if(ax[i]==x){
					a[i]=v;
					x=i;
					break;
				}
			}
			if(a[x]<a[x-1]){
				for(int i=n;i>=2;i--){
					if(a[i]<a[i-1]||(a[i]==a[i-1]&&ax[i]<ax[i-1])){
						int t=a[i-1];
						int tx=ax[i-1];
						a[i-1]=a[i];
						ax[i-1]=ax[i];
						a[i]=t;
						ax[i]=tx;
					}
				}
			}
			else if(a[x]>a[x+1]){
				for(int i=2;i<=n;i++){
					if(a[i]<a[i-1]||(a[i]==a[i-1]&&ax[i]<ax[i-1])){
						int t=a[i-1];
						int tx=ax[i-1];
						a[i-1]=a[i];
						ax[i-1]=ax[i];
						a[i]=t;
						ax[i]=tx;
					}
				}	
			}
			else if(a[x]==a[x+1]||a[x]==a[x-1]){
				for(int i=2;i<=n;i++){
					if(a[i]<a[i-1]||(a[i]==a[i-1]&&ax[i]<ax[i-1])){
						int t=a[i-1];
						int tx=ax[i-1];
						a[i-1]=a[i];
						ax[i-1]=ax[i];
						a[i]=t;
						ax[i]=tx;
					}
				}
			}			
		}
		else if(input==2){
			long long x;
			cin>>x;
			for(int i=1;i<=n;i++){
				if(ax[i]==x){
					cout<<i<<endl;
					break;
				}
			}
		}
	}
}
2022/8/14 12:53
加载中...