0分求助(玄关)
查看原帖
0分求助(玄关)
1199534
ycy1124楼主2024/3/11 13:24
#include<bits/stdc++.h>
using namespace std;
int a[8001],b[8001];
//b为原数组第几个数在排序数组中的位置 
int main()
{
	int n,q;
	cin>>n>>q;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i]=i;
	}
	for(int i=1;i<n;i++)
	{
		for(int j=1;j<=n-i;j++)
		{
			if(a[j]<a[j+1])
			{
				swap(a[j],a[+1]);
				swap(b[j],b[j+1]);
			}
		}
	}
	int pd;
	int x,u;
	for(int j=1;j<=q;j++)
	{
		cin>>pd;
		if(pd==1)
		{
			cin>>x>>u;
			a[b[x]]=u;
			while(a[b[x]]>a[b[x]-1])
			{
				swap(a[b[x]],a[b[x]-1]);
				int i=1;
				for(i=1;i<=n;i++)
				{
					if(a[i]==a[b[x]])
						break;
				}
				swap(b[x],b[i]);
			}
			while(a[b[x]]<a[b[x]+1])
			{
				swap(a[b[x]],a[b[x]+1]);
				int i=1;
				for(i=1;i<=n;i++)
				{
					if(a[i]==a[b[x]])
						break;
				}
				swap(b[x],b[i]);
			}
		}
		else
		{
			cin>>x;
			cout<<a[b[x]]<<endl; 
		}
	}
	return 0;
}
2024/3/11 13:24
加载中...