構造雜湊表——求前m大的數
阿新 • • 發佈:2018-11-07
Problem Description
給你n個整數,請按從大到小的順序輸出其中前m大的數。
Input
每組測試資料有兩行,第一行有兩個數n,m(0<n,m< 1000000),第二行包含n個各不相同,
且都處於區間[-500000,500000]的整數。
Output
對每組測試資料按從大到小的順序輸出前m大的數。
#include <bits/stdc++.h> using namespace std; const int maxn = 10000001; int a[maxn]; int main() { int n, m; cin >> n >> m; memset(a, 0, sizeof(a)); int t; for (int i = 0; i < n; ++i) { cin >> t; a[t+500000]++; } for (int i = 1000000; i >= 1; --i) { while(a[i] && m) { cout << i-500000 << " "; a[i]--; m--; } } return 0; }