現有n個正整數,n≤10000,要求出這n個正整數中的第k個最小整數(相同大小的整數只計算一次),k≤1000,正整數均小於30000。ios
輸入格式:ide
第一行爲n和k; 第二行開始爲n個正整數的值,整數間用空格隔開。spa
輸出格式:code
第k個最小整數的值;若無解,則輸出「NO RESULT」。blog
10 3 1 3 3 7 2 5 1 2 4 6
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 }