C++60分两个点没过求大佬救命
查看原帖
C++60分两个点没过求大佬救命
726603
Leibyi_233楼主2022/7/30 21:15

前两个AC,后两个WA

#include<iostream>
#include<algorithm>
using namespace std;
int a[500500], n, k;
void sort(int* a, int l, int r);
int main()
{
    cin >> n >> k;
    for (int i = 0; i < n; i++)
        cin >> a[i];
    sort(a, 0, (n-1));
    cout << a[k];
    return 0;
}
void sort(int* a, int l, int r)
{
    if (l >= r)return;
    int newl = l, newr = r, flag = a[(l + r) / 2], tmp;
    do {
        while (a[newl] < flag)newl++;
        while (a[newr] > flag)newr--;
        if (newl <= newr)
        {
            tmp = a[newl];
            a[newl] = a[newr];
            a[newr] = tmp;
            newl++;
            newr--;
        }
    } while (newl <= newr);
    if (newr > l)sort(a, l, newr);
    if (newl < r)sort(a, newl, r);
}

2022/7/30 21:15
加载中...