36分求助
查看原帖
36分求助
299690
panyibo楼主2022/7/14 22:21
#include<iostream>

using namespace std;

int main()
{
	//freopen("sort2.in","r",stdin);
	//freopen("sort.out","w",stdout);
	int a,b,a1,a3,a2,ans[100010],n[100010],m;
	cin >> a >> b;
	for(int i = 1;i <= a;i++)
		cin >> n[i];
	for(int i = 1;i <= a;i++)
	{
		for(int j = 1;j <= a;j++)
		{
			if(n[j] < n[i]) ans[i]++;
				else if(n[j] == n[i] && i >= j) ans[i]++;
		}
	}
	/*for(int i=1;i<=a;i++)
		cout<<ans[i]<<" ";
	cout<<endl;*/
	for(int i = 1;i <= b;i++)
	{
		cin >> m;
		if(m == 1)
		{
			cin >> a1 >> a2;
			
			if(n[a1]!=a2)for(int j = 1;j <= a;j++)
			{	
				if(j==a1)continue;
				if((n[j] < n[a1] || (n[j] == n[a1] && a1 < j)) && (n[j] > a2 || (n[j] == a2 && a1 < j)))
					ans[j]++,ans[a1]--;
				else if((n[j] > n[a1] || (n[j] == n[a1] && a1 > j)) && (n[j] < a2 || (n[j] == a2 && a1 > j)))
					ans[a1]++,ans[j]--;		
			}
			n[a1] = a2;
			/*for(int i=1;i<=a;i++)
				cout<<n[i]<<" ";
			cout<<endl;
			for(int i=1;i<=a;i++)
				cout<<ans[i]<<" ";
			cout<<endl;*/
		}
		else if(m == 2)
		{
			cin >> a3;
			cout << ans[a3] << endl;
		}
	}	
	return 0;
}

貌似没错,有大佬来看看吗

2022/7/14 22:21
加载中...