求助
  • 板块题目总版
  • 楼主lilong
  • 当前回复14
  • 已保存回复14
  • 发布时间2021/10/30 15:33
  • 上次更新2023/11/4 01:55:24
查看原帖
求助
180406
lilong楼主2021/10/30 15:33

原题链接

#12,#13,#18,#19,#20错误答案,本人看不出来,求助

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct play
{
	int a;
	int b;
};
play c[1000001];
int n,m,d[1000001],q,x,y;
bool cmp(play x,play y)
{
	return x.a<y.a||x.a==y.a&&x.b<y.b;
}
int main()
{
//	freopen("sort.in","r",stdin);
//	freopen("sort.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
		scanf("%d",&c[i].a),c[i].b=i;
	sort(c+1,c+n+1,cmp);
	for(int i=1;i<=n;i++)
		d[c[i].b]=i;
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&q);
		if(q==1)
		{
			scanf("%d%d",&x,&y);
			c[d[x]].a=y;
			for(int i=2;i<=n;i++)
				if(cmp(c[i],c[i-1]))
					swap(c[i],c[i-1]);
			for(int i=n;i>=2;i--)
				if(cmp(c[i],c[i-1]))
					swap(c[i],c[i-1]);
			for(int i=1;i<=n;i++)
				d[c[i].b]=i;
		}
		if(q==2)
		{
			scanf("%d",&x);
			printf("%d\n",d[x]);
		}
	}
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
2021/10/30 15:33
加载中...