求第k大数

xiaoxiao2021-02-28  118

问题 A: 求第k大数

时间限制: 1 Sec   内存限制: 128 MB

题目描述

给定一个长度为n(1≤n≤1,000,000)的无序正整数序列,以及另一个数k(1≤k≤1,000,000)(关于第k大的数:例如序列{1,2,3,4,5,6}中第3大的数是4。)

输入

第一行两个正整数m,n。

第二行为m个正整数。

输出

第k大的数。

样例输入

6 3 1 2 3 4 5 6

样例输出

4 #include<stdio.h> #include<queue> using namespace std; priority_queue<int,vector <int>, greater <int> > q; int main() { int m,n; scanf("%d%d",&m,&n); while(!q.empty()) q.pop(); for(int i=0;i<m;i++) { int a; scanf("%d",&a); if(q.size()<n) q.push(a); else { if(a>q.top()) { q.pop(); q.push(a); } } } printf("%d",q.top()); return 0; }

转载请注明原文地址: https://www.6miu.com/read-37029.html

最新回复(0)