90分 倒数第二个测试点wa了,求大佬调😭
查看原帖
90分 倒数第二个测试点wa了,求大佬调😭
1468080
_1234y61楼主2024/11/26 12:42
#include<iostream>
using namespace std;
int  a[1000010];
int  b[1000010];
void sort(int b[],int l,int r)
{
	if(l>=r) return;
	int x=b[l],i=l-1,j=r+1;
	while(i<j){
		
		do i++; while(b[i]<x);
		do j--; while(b[j]>x);
		if(i<j) swap(b[i],b[j]);
	}
	sort(b,l,j);
	sort(b,j+1,r);
}

int main()
{
	int t,n;
	scanf("%d",&t);
	for(int k=0;k<t;k++)
	{
		scanf("%d",&n);
		for(int i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
		}
		for(int i=0;i<n;i++)
		{
			b[i]=a[i];
		}
		sort(b,0,n-1);
		int i=0,j=n-1;
		for(;i<n;i++)
		{
			if(a[i]!=b[i])
			{
				break;
			}
		}
		for(;j>=0;j--)
		{
			if(a[j]!=b[j])
			{
				break;
			}
		}
		if(i==n)
		{
			printf("0\n");	
		}else
			printf("%d\n",j-i+1);
	}
	
	return 0;
}
2024/11/26 12:42
加载中...