40pts求调
查看原帖
40pts求调
1809288
LeoGu2014楼主2025/7/25 19:21

提交记录

代码

#include<bits/stdc++.h>
using namespace std;
#define int unsigned long long
void merge_sort(int a[],int l,int r){
	if(l >= r) return;
	int mid = l + (r - l) / 2;
	merge_sort(a,l,mid);
	merge_sort(a,mid + 1,r);
	int p1 = l,p2 = mid + 1,p = 0;
	int b[r - l + 1];
	
	while(p1 <= mid && p2 <= r){
		if(a[p1] > a[p2]){
			b[p++] = a[p2++];
		}else{
			b[p++] = a[p1++];
		}
	}
	
	while(p1 <= mid){
		b[p++] = a[p1++];
	}
	
	while(p2 <= r){
		b[p++] = a[p2++];
	}
	
	for(int i = 0 ; i < p ; i++){
		a[l + i] = b[i];
	}
}
int n,k,a[5000005];
signed main(){
	cin>>n>>k;
	for(int i = 1 ; i <= n ; i++){
		cin>>a[i];
	}
	merge_sort(a,1,n);
	cout<<a[k];
	return 0;
}
2025/7/25 19:21
加载中...