輸入只要能讀到第一個單字,後面用getline讀進來就可以忽略了。
然後就看現在讀到的國家有沒有記錄過,有就把次數加1,沒有就加進去然後次數為1。
輸出照字典序。
程式碼:
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int n;
string s,ignore;
vector<string> country;
vector<int> times;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>s;
cin.ignore();
getline(cin,ignore);
if(find(country.begin(),country.end(),s)==country.end())
country.push_back(s),times.push_back(1);
else
{
int l=0;
for(auto it:country)
{
if(it==s)
break;
l++;
}
times[l]++;
}
}
for(int i=0;i<country.size();i++)
{
for(int j=0;j<country.size();j++)
{
if(country[i]<country[j])
{
swap(country[i],country[j]);
swap(times[i],times[j]);
}
}
}
for(int i=0;i<country.size();i++)
cout<<country[i]<<" "<<times[i]<<endl;
}
return 0;
}
沒有留言:
張貼留言