哪位高手帮我看看这个考场代码大概能拿多少分
查看原帖
哪位高手帮我看看这个考场代码大概能拿多少分
509794
快乐的小男生楼主2021/10/23 17:25
#include<cstdio>
#include<iostream>
using namespace std;
int n,q,t,s,x,v,c;
int sn[200007];
struct A
{
	int number;
	int bh;
} a[200007];
inline void sf()
{
	for(int i=1;i<=n;++i)
	{
		for(int j=i;j>=2;--j)
		{
			if(a[j].number<a[j-1].number)
			{
				t=a[j-1].number;
				a[j-1].number=a[j].number;
				a[j].number=t;
				t=a[j].bh;
				a[j].bh=a[j-1].bh;
				a[j-1].bh=t;
				t=sn[a[j].bh];
				sn[a[j].bh]=sn[a[j-1].bh];
				sn[a[j-1].bh]=t;
			}	
			else if(a[j].number==a[j-1].number && a[j].bh<a[j-1].bh)
			{
				t=a[j-1].number;
				a[j-1].number=a[j].number;
				a[j].number=t;
				t=a[j].bh;
				a[j].bh=a[j-1].bh;
				a[j-1].bh=t;
				t=sn[a[j].bh];
				sn[a[j].bh]=sn[a[j-1].bh];
				sn[a[j-1].bh]=t;
			}
		}
	}
	return;
}
int main()
{
	scanf("%d %d",&n,&q);
	for(int i=1;i<=n;++i)
	{
		scanf("%d",&a[i].number);
		a[i].bh=i;
		sn[a[i].bh]=i;
	}
	sf();
	for(int i=1;i<=q;++i)
	{
		scanf("%d",&s);
		if(s==1)
		{
			scanf("%d %d",&x,&v);
			a[sn[x]].number=v;
			sf();
		}
		else
		{
			scanf("%d",&c);
			printf("%d",sn[c]);
			cout<<endl;
		}
	}
	return 0;
}
2021/10/23 17:25
加载中...