求调
  • 板块题目总版
  • 楼主xpg007
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/16 22:22
  • 上次更新2024/3/17 08:43:33
查看原帖
求调
1024680
xpg007楼主2024/3/16 22:22

P1923 https://www.luogu.com.cn/problem/P1923

#include <bits/stdc++.h>
using namespace std;
int a[5000001], k;
void sort(int l, int r){
	int i = l, j = r, mid = a[(l + r) / 2];
	while (i <= j){
		while (a[j] > mid)
			j--;
		while (a[i] < mid)
			i++;
		if(i <= j){
			swap(a[i], a[j]);
			i++;
			j--;
		}
	}
	if (k <= j)
        sort(l, j);
	else if (i <= k)
        sort(i, r);
	else {
		cout << a[j + 2];
		return ;
	}
}
int main()
{
	int n;
	cin >> n >> k;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	sort(1, n);
    return 0;
}
2024/3/16 22:22
加载中...