0分求助 3WA 2TLE

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

CadeShuWindsor @ 2022-08-13 09:01:38

如题 真的不明白哪里错了

#include<bits/stdc++.h>
using namespace std;
long long n,k,a[5000005],b[5000005];
int main()
{
    scanf("%lld",&n);
    scanf("%lld",&k);
    for(int i=1;i<=n;i++)
        scanf("%lld",&a[i]);
    sort(a+1,a+n+1);
    b[0]=a[1];
    long long rank=1;
    for(int i=2;i<=n;i++)
    {
        if(a[i]!=a[i-1])
        {
            b[rank]=a[i];
            rank++;
        }
    }   
    cout<<b[k];
    return 0;
}

by irris @ 2022-08-13 09:17:51

@CadeShuWindsor 谁跟你说是严格第 k 小了?


by CadeShuWindsor @ 2022-08-13 09:31:48

@AlgorithmerSnow 本蒟蒻还是不太明白(捂脸) 第k小不是去除多余之后从0开始找吗


by a9876543210 @ 2022-08-13 09:54:38

不用去重吧


by hepp @ 2022-08-13 09:59:46

@CadeShuWindsor

用 sort 只能得60分。

不用去除重复的数字(如:2 2 2 第二小就是 2)


by CadeShuWindsor @ 2022-08-13 10:20:12

@hepp 谢谢大佬,我去试一下


|