分治60求调 TLE了
查看原帖
分治60求调 TLE了
766106
Tr_Sup楼主2025/7/31 12:20
#include<bits/stdc++.h>
using namespace std;
const int N=5e6+10;
int a[N],n,k;
void ac(int l,int r){
	if(l==r){
		cout<<a[l]<<endl;
		return ;
	}
	int i=l,j=r,f=a[(l+r)/2];
	do{
		while(a[i]<f) i++;
		while(a[j]>f) j--;
		if(i<=j){
			swap(a[j],a[i]);
			i++,j--;
		}
	}while(i<=j);
	if(k<=j) ac(l,j);
	else if(k>=i) ac(i,r);
	else ac(j+1,i-1);
}
int main(){
	cin>>n>>k;
	k++;
	for(int i=1;i<=n;i++) cin>>a[i];
	ac(1,n);
	return 0;
}

2025/7/31 12:20
加载中...