123AC 45TLE求助
查看原帖
123AC 45TLE求助
601355
a2233123楼主2022/11/7 17:59

求助

#include<bits/stdc++.h>
using namespace std;
int n;
int a[100100];
void qp(int x,int y,int z){
	if(x>=y) return;
	int i=x,j=y,k=a[z];
	while(i<j){
		if(a[j]<=k){
			if(a[i]>=k&&a[i]!=a[j]){
				swap(a[i],a[j]);
			}
			else ++i;
		}
		else --j;
	}
	if(x+1<j) qp(x,j-1,rand()%(j-x)+x);
	if(y>j) qp(j+1,y,rand()%(y-j)+j+1);
}
int main(){
	//freopen("P1177_1.in","r",stdin);
	//freopen("P1177_11.txt","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	qp(1,n,rand()%n+1);
	for(int i=1;i<=n;i++){
			printf("%d ",a[i]);
		}
	return 0;
}
2022/11/7 17:59
加载中...