【P1138 第k小整数】sort(排序)和 unique(数组去重)

https://www.luogu.org/problemnew/show/P1138

本题的核心是:.去重排序

sort(a, a+n), n = unique(a, a+n) - a;
unique(a, a+n)只能把相邻的数字中的多余部分放到数组后,并不是真正的删除。且只能处理相邻元素,所以使用时应先排序。

#include<iostream>
#include<algorithm>
using namespace std;
int a[10000],s[1000],n,k,j,ans;
int main()
{
   cin>>n>>k;
   for(int i=1;i<=n;i++) cin>>a[i];
   sort(a+1,a+n+1);
   ans=unique(a,a+n)-a; //数组去重 
   
   if(k<ans) cout<<a[k]; //如果去重以后k<=ans,则输出对应的数
    else cout<<"NO RESULT";//否则输出 NO RESULT
    return 0;
}

 

 

posted on 2018-11-30 11:18  lcdxjsj  阅读(136)  评论(0)    收藏  举报

导航