qduoj GZS送温暖

GZS送温暖

发布时间: 2015年9月6日 15:18   最后更新: 2016年6月30日 21:54   时间限制: 1000ms   内存限制: 256M

描述

    众所周知,GZS是一个总是考第一的大学霸,为什么呢?因为GZS喜欢思考!(逃…

当然,GZS也有不愿意动脑的时候,给你N个正整数(可以重复),GZS希望让你告诉他这些正整数里面第K小的数是多少。简单吗,ACCEPT it!

输入

第一行为一个整数N ( N <= 100000) 代表整数个数; 第二行为N个整数,并且每个正整数的值都不大于10^6; 第三行为一个整数K ( K <= N );

输出

输出一行,包含一个整数。这个整数就是这个序列里面排第K小的数。

样例输入1  复制
5
1 2 2 4 5
3
样例输出1
2
数据很水,sort就能过

#include
#include
#include
using namespace std;
int cmp(int u,int v)
{
    return u

其实还有一种最优解,优先队列来做

(。。当时还不会用c_库函数,手写一个简单的优先队列)

#include
void weihu(int n[100005],int le,int ri);
int main()
{
	int n,k,a[100005],que[100005];
	int head=0,tail=0,flog=0;
    scanf("%d",&n);
    for(int i=0;in[max])
		max=i;
	}
	t=n[max];
	n[max]=n[le];
	n[le]=t;
	return;
}






你可能感兴趣的:(qduoj,队列)