洛谷 P1138 第k小整數

題目描述

現有n個正整數,n≤10000,要求出這n個正整數中的第k個最小整數(相同大小的整數只計算一次),k≤1000,正整數均小於30000。ios

輸入輸出格式

輸入格式:ide

 

第一行爲n和k; 第二行開始爲n個正整數的值,整數間用空格隔開。spa

 

輸出格式:code

 

第k個最小整數的值;若無解,則輸出「NO RESULT」。blog

 

輸入輸出樣例

輸入樣例#1:
10 3
1 3 3 7 2 5 1 2 4 6
輸出樣例#1:
3

說明

n≤10000ip

——————————————————我是分割線————————————————————ci

 1 /*
 2     Problem:
 3     OJ:
 4     User:    S.B.S.
 5     Time:
 6     Memory:
 7     Length:
 8 */
 9 #include<iostream>
10 #include<cstdio>
11 #include<cstring>
12 #include<cmath>
13 #include<algorithm>
14 #include<queue>
15 #include<cstdlib>
16 #include<iomanip>
17 #include<cassert>
18 #include<climits>
19 #include<functional>
20 #include<bitset>
21 #include<vector>
22 #include<list>
23 #define F(i,j,k) for(int i=j;i<=k;++i)
24 #define M(a,b) memset(a,b,sizeof(a))
25 #define FF(i,j,k) for(int i=j;i>=k;i--)
26 #define maxn 10001
27 #define inf 0x3f3f3f3f
28 #define maxm 4001
29 #define mod 998244353
30 //#define LOCAL
31 using namespace std;
32 int read(){
33     int x=0,f=1;char ch=getchar();
34     while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
35     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
36     return x*f;
37 }
38 int n,m,k;
39 int a[maxn];
40 int main()
41 {
42     std::ios::sync_with_stdio(false);//cout<<setiosflags(ios::fixed)<<setprecision(1)<<y;
43     #ifdef LOCAL
44     freopen("data.in","r",stdin);
45     freopen("data.out","w",stdout);
46     #endif
47     cin>>n>>k;
48     F(i,1,n) cin>>a[i];
49     sort(a+1,a+n+1);
50     if(k>unique (a+1,a+n-1)-a-1)
51       cout<<"NO RESULT"<<endl;
52     else cout<<a[k]<<endl;
53     return 0;
54 }
View Code
相關文章
相關標籤/搜索