1235
【题目描述】
给定一个数组,统计前k大的数并且把这k个数从大到小输出。
【输入】
第一行包含一个整数n,表示数组的大小。n < 100000。
第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。
第三行包含一个整数k,k < n。
【输出】
从大到小输出前k大的数,每个数一行。
【输入样例】
10
4 5 6 9 8 7 1 2 3 0
5
【输出样例】
9
8
7
6
5
【源程序】
#include<iOStream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<string>
#define INF 999999999
#define N 1000001
#define MOD 1000000007
using namespace std;
int a[N];
int cmp(int a,int b)
{
return a>b;
}
int main()
{
int n,k;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>k;
sort(a+1,a+1+n,cmp);
for(int i=1;i<=k;i++)
cout<<a[i]<<endl;
return 0;
}
相关阅读
C++中std::ostringstream输出用法 一、简单介绍 ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中。ostrin
static void test04() throws FileNotFoundException { /* FileOutputStream(FileDescriptor fdObj) 创建一个向
时间限制: 1000 ms 内存限制: 65536 KB提交数: 10333 通过数: 7040【题目描述】 输入一个浮点数,输出这个浮点数的绝
window.location.href的用法(动态输出跳转)
javascript中的location.href有很多种用法,主要如下。self.location.href="/url" 当前页面打开URL页面location.href="/url" 当前
等差数列 2,5,8,11,14。。。。 输入:正整数N >0 输出:求
#include using namespace std; int main() { int a1=2,d=3,n,sum; while(cin>>n) { sum=n*a1+n*(n-1)/2*d;