ZeroJudge A743: List of Conquests

同題:UVa 10420 – List of Conquests

每筆測資第一行有一個正整數 N,接下來會有 N 行,每行的第一個字為一個國家名稱,剩下的字串為一個人名。要求輸出每一個國家出現的次數

範例測資

範例輸入範例輸出
第一行有一個正整數 N,再來會有 N 行,每行有三個字串,分別是一個國家名和一個人的「名」和「姓」。輸出每個國家出現的次數,需要由國家名的字母順序來做排序輸出
3
Spain Donna Elvira
England Jane Doe
Spain Donna Anna
England 1
Spain 2

解題思路

輸入的時候可以使用三個字串來輸入,重點是國家名剩下的姓名可以直接忽略。

使用 Map 來紀錄每個國家的出現次數。輸出的時候可以使用 for (auto it:Map),這樣就可以依據英文字母的順序做輸出。

範例程式碼-ZeroJudge A743: List of Conquests

#include <iostream>
#include <map>
using namespace std;

int main() {
    cin.sync_with_stdio(0);
    cin.tie(0);
    int N;
    cin >> N;
    string a;
    getline(cin, a);
    map<string, int>MAP;
    for (int i = 0; i<N; i++)
    {
        string str;
        getline(cin, str);
        string country = "";
        for (int j = 0; j<str.length(); j++)
        {
            if (str[j] == ' ') break;
            country += str[j];
        }
        MAP[country]++;
    }
    for (auto it:MAP)
    {
        cout << it.first << " " << it.second << "\n";
    }
}

//ZeroJudge A743
//Dr. SeanXD

發佈留言