求助

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

ji20101333 @ 2022-04-18 09:17:53

#include<bits/stdc++.h>
using namespace std;
map<int,bool> a;
int n,m,i,x,num[5000001],cnt;
int main()
{
    cin>>n>>m;
    for(i=1;i<=n;i++)
    {
        scanf("%d",&x);
        if(!a.find(x)->second)
            num[++cnt]=x,a[x]=1;
    }
    sort(num+1,num+cnt+1);
    cout<<num[m+1];
    return 0;
}

代码如上,前三个点WA,后两个点T了

求问为什么会WA(

评测记录


by Gispy @ 2022-04-18 09:26:20

直接排序后输出不香吗???


by Gispy @ 2022-04-18 09:27:14

@ji20101333 建议使用scanf


by 编码落寞 @ 2022-04-18 09:29:16

@ji20101333

可能数据有重的吧


by Gispy @ 2022-04-18 09:32:45

@ji20101333 我这个代码吸氧能过

#include<bits/stdc++.h>
using namespace std;
int a[5000001];
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n);
    printf("%d",a[m]);
}

by Gispy @ 2022-04-18 09:33:29

吸氧是个好东西


by ji20101333 @ 2022-04-18 09:40:09

解决了!谢谢大家!

解释一下,是因为题目不是去重后找第k小,我理解错题意辽(尬住


|