#55273: cpp_answer


yp11451202@yphs.tp.edu.tw (705-38黃鈺潤)


#include <iostream>
#include <string>
#include <map>
#include <iomanip>

using namespace std;

void solve() {
    map<string, int> speciesMap;
    string line;
    int totalCount = 0;

    // 持續讀取直到遇到空行或結束
    while (getline(cin, line) && !line.empty()) {
        speciesMap[line]++;
        totalCount++;
    }

    // 遍歷 map(自動按名稱排序)並輸出百分比
    for (auto const& [name, count] : speciesMap) {
        double percentage = (double)count * 100.0 / totalCount;
        cout << name << " " << fixed << setprecision(4) << percentage << endl;
    }
}

int main() {
    int n;
    if (!(cin >> n)) return 0;
    
    string dummy;
    getline(cin, dummy); // 跳過 n 後的換行
    getline(cin, dummy); // 跳過題目要求的空行

    for (int i = 0; i < n; ++i) {
        if (i > 0) cout << endl; // 每組輸出之間印出一個空行
        solve();
    }

    return 0;
}