b374. [福州19中]众数 5/16/2025

題目錯誤

  1. 範例測資的數字之間多給了一個空格 : 提交時 1 個空格就好
  2. 有多個眾數時 : 輸出需要 由小到大 排序
  3. N 的範圍錯誤 : 實際的範圍是 1 ≤ N ≤ 30000

解法一、map

✅ 完整代碼

評分結果(參考) : AC (5ms, 688KB)

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int t, temp, mx = 0;
    cin >> t;
    
    unordered_map<int, int> um;
    vector<int> ans;
    
    for(int i=0; i<t; i++){
        cin >> temp;
        um[temp]++;
        
        if(um[temp] > mx){
            ans.clear();
            ans.push_back(temp);
            mx = um[temp];
        }
        else if(um[temp] == mx){
            ans.push_back(temp);
        }
    }
    
    sort(ans.begin(), ans.end());
    for(int i : ans) cout << i << " " << um[i] << "\n";

    return 0;
}