大佬,求调。p7910 插入排序
  • 板块灌水区
  • 楼主abu456
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/19 19:53
  • 上次更新2024/7/19 21:08:04
查看原帖
大佬,求调。p7910 插入排序
1121181
abu456楼主2024/7/19 19:53
#include<bits/stdc++.h>
using namespace std;
int b[8001],i,n,o,q; 
struct st
{
	int a,b,c;
}a[8001];
bool cmp(st x,st y)
{
	if (x.a==y.a)
	{
		return x.b<y.b;
	}
	else
	{
		return x.a<y.a;
	}
}
int main()
{
	int x,y; 
	ios::sync_with_stdio(false);
	cin>>n>>q;
	for (i=1;i<=n;i++)
	{
		cin>>a[i].a;
		a[i].b=i;
	}
	sort(a+1,a+n+1,cmp);
	for (i=1;i<=n;i++)
	{
		a[a[i].b].c=i;
	}
	while (q--)
	{
		cin>>o;
		if (o==1)
		{
			cin>>x>>y;
			a[a[x].c].a=y;
			for (i=x;i<n&&a[i].a>=a[i+1].a;i++)
			{
				if (a[i].a==a[i+1].a&&a[i].b<a[i+1].b)
				{
					break;
				}
				swap(a[i],a[i+1]);
			}
			for (i=x;i>1&&a[i].a<=a[i-1].a;i--)
			{
				if (a[i].a==a[i-1].a&&a[i].b>a[i-1].b)
				{
					break;
				}
				swap(a[i],a[i-1]);
			}
		}
		else
		{
			cin>>x;
			cout<<a[x].c<<endl;
		}
	}
	return 0;
}
2024/7/19 19:53
加载中...