HDU 1425

来源:互联网 发布:淘宝seo技巧 编辑:程序博客网 时间:2024/05/22 09:41
Problem Description
给你n个整数,请按从大到小的顺序输出其中前m大的数。
 

Input
每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
 

Output
对每组测试数据按从大到小的顺序输出前m大的数。
 

Sample Input
5 33 -35 92 213 -644
 

Sample Output
213 92 3
题目很简单 直接开个大数组就可以了
但数组不能是局部数组
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>int a[1000000];using namespace std;bool cmp(int a,int b){    return a>b;}int main(){    int n,m,i;        while(scanf("%d%d",&n,&m)!=EOF)    {     memset(a,0,sizeof(a));        for(i=0;i<n;i++)        {            scanf("%d",&a[i]);        }        sort(a,a+n,cmp);        for(i=0;i<m;i++)        {            if(i!=m-1)               printf("%d ",a[i]);            else               printf("%d\n",a[i]);        }    }    return 0;}
0 0