P1271 【深基9.例1】選舉學生會
題目描述
學校正在選舉學生會成員,有 nnn(1≤n≤9991 \le n\le 9991≤n≤999)名候選人,每名候選人編號分別從 111 到 nnn,現在收集到了 mmm(1≤m≤20000001 \le m \le 20000001≤m≤2000000)張選票,每張選票都寫了一個候選人編號。現在想把這些堆積如山的選票按照投票數字從小到大排序。設第 iii(1≤i≤m1 \le i \le m1≤i≤m)張選票上的數字為 aia_iai?,則保證有 1≤ai≤n1 \le a_i \le n1≤ai?≤n。
輸入格式
輸入 nnn 和 mmm 以及 mmm 個選票上的數字。
輸出格式
求出排序后的選票編號。
輸入輸出樣例 #1
輸入 #1
5 10
2 5 2 2 5 2 2 2 1 2
輸出 #1
1 2 2 2 2 2 2 2 5 5
solution
這道題數據量大,但是每個數據范圍很小,很適合用計數排序
代碼
#include <sstream>
#include "iostream"
#include "math.h"
#include "algorithm"
#include "string.h"
#include "unordered_set"
#include "deque"
#include "stack"
#include "queue"
#include "vector"
#include "unordered_map"using namespace std;const int N = 1e3;int a[N];int main() {int n, x, m;cin >> n >> m;for (int i = 0; i < m; i++) cin >> x, a[x]++;for (int i = 1; i <= n; i++) {for (int j = 0; j < a[i]; j++) {cout << i << " ";}}return 0;
}