b265. Q11286 - Conformity 5/16/2025

解法一、map

🔹 壓縮

課程代號最大是 499,而 499 = 0b111110011
每個課程代號占用 9 bits
5 個課程代號會占用 45 bits
把 5 個課程代號 壓縮到 long long
(壓縮前需要先排序)

然後用 unordered_map<> 儲存組合出現的次數

✅ 完整代碼

評分結果(參考) : AC (84ms, 1.3MB)

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

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int n;
    vector<int> nums(5);
    
    while(true){
        cin >> n;
        if(n == 0) break;
        
        int mx=0, cnt=1;
        unordered_map<int, int> um;
        
        for(int i=0; i<n; i++){
            for(int& num : nums) cin >> num;
            sort(nums.begin(), nums.end());
            
            int k = nums[0] + (nums[1]<<9) + (nums[2]<<18) + (nums[3]<<27) + (nums[4]<<36);
            um[k]++;
            
            if(um[k] > mx){
                mx = um[k];
                cnt = 1;
            }
            else if(um[k] == mx){
                cnt++;
            }
        }
        cout << mx*cnt << "\n";
    }
    
    return 0;
}