爆零求助
查看原帖
爆零求助
1417916
yanglantian999楼主2024/10/19 22:09

爆零求助

	#include<bits/stdc++.h>
using namespace std;
int n,q;
long long a[8001][2],x,y,z,f[8001][2],b[8001];
int main()
{
	
	cin >> n >> q;
	for(int i = 1;i <= n;i++)
	{
		
		cin >> f[i][0];
		f[i][1] = i;
	}
	for(int i = 1;i <= n;i++)
	{
		for(int j = i;j >= 2;j--)
		{
			if(f[j][0] < f[j-1][0] )
			{
				long long t = f[j-1][0],y = f[j-1][1];
				f[j-1][0] = f[j][0];
				f[j-1][1] = f[j][1];
				f[j][0] = t;
				f[j][1] = y;
			}
		}
	}
	for(int i = 1;i <= n;i++)b[f[i][1]] = i;
	for(int z = 1;z <= q;z++)
	{
		cin >> x;
		if(x ==2)
		{
			cin >> y;
			cout << b[y] << endl;
		}
		else if(x == 1)
		{
			cin >> y >> z;
			for(int i = 1;i <= n;i++)
			{
				if(f[i][1] == y)
				{
					f[i][0] = z; 
					break;
				}
			}
			for(int j = n;j >= 2;j--)
			{
				if(f[j][0] < f[j-1][0] || (f[j][0] == f[j-1][0] && f[j][1] < f[j-1][1]))
				{
					long long t = f[j-1][0],y = f[j-1][1];
					f[j-1][0] = f[j][0];
					f[j-1][1] = f[j][1];
					f[j][0] = t;
					f[j][1] = y;
				}
			}
			for(int j = 1;j <= n-1;j++)
			{
				if(f[j][0] > f[j+1][0]||(f[j][0] == f[j+1][0] && f[j][1] > f[j+1][1]))
				{
					long long t = f[j+1][0],y = f[j+1][1];
					f[j+1][0] = f[j][0];
					f[j+1][1] = f[j][1];
					f[j][0] = t;
					f[j][1] = y;
				}
			}
			for(int i = 1;i <= n;i++)
			{
				b[f[i][1]] = i;
			}
		}
	}
	return 0;
}
2024/10/19 22:09
加载中...