題目連結: https://zerojudge.tw/ShowProblem?problemid=b265
# 解題思路
運用 map 將課程的選擇狀況都記錄下來,找出出現最多次數的就好啦!!
(紀錄的時候統一由小而大排會比較方便喔!!)
(是說,string 也有自動排序跟加法,可以試看看)
# 程式碼
#include <bits/stdc++.h> | |
using namespace std; | |
int main() { | |
int n; | |
while(cin>>n && n){ | |
string cls[5]; | |
map<string,int> M; | |
string buf; | |
for(int i=0;i<n;i++){ | |
for(int j = 0;j<5;j++) | |
cin>>cls[j]; | |
sort(cls,cls+5); | |
string s; | |
for(int j=0;j<5;j++) | |
s+=cls[j]; | |
M[s]++; | |
} | |
int ans=0,Max=0; | |
for(map<string,int>::iterator it=M.begin();it!=M.end();it++) | |
{ | |
if((it->second)>Max) | |
Max=it->second, ans=0; | |
if((it->second)==Max) | |
ans+=Max; | |
} | |
cout<<ans<<endl; | |
} | |
} |