同題: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