严格的第k小c++编程题

蒜头君有 n 个数,他想知道其中严格第 k 小的数是多少,其中严格第 k 小指对这些数去重以后的第 k 小。
样例输入
5 3
1 2 3 2 4
样例输出
3
求代码


#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main()
{
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++) 
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int i;
    for(i=1;i<=k;i++) 
    {
        if(i==k) break;
        while(a[i]!=a[i-1]) 
        {
            i++;
        }
    }
    cout<<a[i];
}