标签:
试题描述
|
输入两个正整数N、K,以及N个整数Ai,求第K小数。
|
输入
|
第一行为两个正整数N、K。
第二行为N个正整数Ai。 |
输出
|
输出第K小数。
|
输入示例
|
5 4
1 2 3 3 5 |
输出示例
|
3
|
其他说明
|
1<=K<=N<=200000
-10^9<=Ai<=10^9 |
此题要用快速排序。如果你认为简单排序就可以,欢迎尝试!
#include<iostream> #define rep(s,t) for(int i=s;i<=t;i++)//自定义读入数据方法 using namespace std; const int maxn=2000010; int read()//高效读入数据 { int x=0,f=1;char c=getchar(); for(;!isdigit(c);c=getchar()) if(c==‘-‘) f=-1; for(;isdigit(c);c=getchar()) x=x*10+c-‘0‘; return x*f; } int A[maxn]; int main() { int n=read(),k=read();//读入数据 rep(1,n) A[i]=read();//自定义的读入数据方法 nth_element(A+1,A+k,A+n+1);//对给定范围进行排序 cout<<A[k];//输出第k小的数 //system("pause"); return 0; }
标签:
原文地址:http://www.cnblogs.com/nightfury/p/4964012.html