两个wa,三个re,求助,样例过了

P1923 【深基9.例4】求第 k 小的数

fn_0322 @ 2024-01-27 09:02:36

#include<bits/stdc++.h>
using namespace std;
long long n,k,a[10005],cnt;
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;++i){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    k=k+1;
    for(int i=1;i<=n;++i){
        if(a[i]>a[i-1]){
            cnt++;
            if(cnt==k)
            cout<<a[cnt];
        }
    }
    return 0;
}

by yangjunrui @ 2024-01-27 09:30:21

肯定re呀, n<5000000


by yangjunrui @ 2024-01-27 09:32:57

而且你本身的做法就有问题,sort排序过了之后直接输出a[k]就好了啊


by yangjunrui @ 2024-01-27 09:34:37

就算这样做做对了也只有60分,数据太大了,会tle的,可以用自带函数或是二分搜索


|