40分一个超时两个红,求助!!!
  • 板块P1908 逆序对
  • 楼主Florian18
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/11/23 23:12
  • 上次更新2023/11/24 14:13:50
查看原帖
40分一个超时两个红,求助!!!
809261
Florian18楼主2023/11/23 23:12
#include<bits/stdc++.h>
#define rep(i,m,n) for(int i=(m);i<=(n);i++)
using namespace std;

long long n=0,a[100000]={0};

void qs(int l,int r)
{
	int lt=l,rt=r,mid=a[l+r>>1];
	while(lt<=rt)
	{
		while(a[lt]<mid) lt++;
		while(a[rt]>mid) rt--; 
		if(lt<=rt)
		{
			swap(a[lt],a[rt]);
			lt++,rt--;
		}
	}
	if(l<rt)qs(l,rt);
	if(r>lt)qs(lt,r);
}

int main(){
	scanf("%d",&n); 
	rep(i,1,n) scanf("%d",&a[i]);
	qs(1,n);
	rep(i,1,n) printf("%d ",a[i]);
}
2023/11/23 23:12
加载中...