雜湊演算法---sort 前M大的數
阿新 • • 發佈:2019-02-05
給你n個整數,請按從大到小的順序輸出其中前m大的數。
Input每組測試資料有兩行,第一行有兩個數n,m(0<n,m<1000000),第二行包含n個各不相同,且都處於區間−500000,500000−500000,500000的整數。
Output對每組測試資料按從大到小的順序輸出前m大的數。
Sample Input
Time limit 1000 ms Memory limit 32768 kB OS Windows
Input每組測試資料有兩行,第一行有兩個數n,m(0<n,m<1000000),第二行包含n個各不相同,且都處於區間−500000,500000−500000,500000的整數。
Output對每組測試資料按從大到小的順序輸出前m大的數。
Sample Input
5 3 3 -35 92 213 -644Sample Output
213 92 3
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int num[1000010];// 0-499999 是負數 500001-1000000是正數 500000是0
int main()
{
int n,m,t,i;
while(scanf("%d %d",&n,&m)!=EOF)
{
memset(num,0,sizeof(num));
for(i=0;i<n;i++)
{
scanf("%d",&t);
num[t+500000]++;
}
for(i=1000000;i>=0&&m;i--)
{
if(num[i])
{
printf("%d",i-500000);
m-=1;
if(m)
printf(" ");
}
}
printf("\n");
}
return 0;
}
Time limit 1000 ms Memory limit 32768 kB OS Windows
Status | Accepted |
---|---|
Time | 764ms |
Memory | 5484kB |
Length | 460 |
Lang | G++ |
Submitted | 2017-04-10 20:43:37 |