题解 | #记票统计#
记票统计
https://www.nowcoder.com/practice/3350d379a5d44054b219de7af6708894
#include <iostream>
#include <map>
#include <vector>
using namespace std;
typedef pair<int,int> T; //第一个参数是候选人输入顺序,第二个参数是票数
int main()
{
int n,m,Inval = 0;
cin >> n;
string c;
vector<string> vec;
map<string, T>hashMap;
T tt;
int i = 0;
while (n--){
cin >> c;
auto it = hashMap.find(c);
if (it == hashMap.end()){
tt.first = i++;
tt.second = 0;
hashMap[c] = tt;
vec.push_back(c);
}
}
cin >> m;
while (m--){
cin >> c;
auto it = hashMap.find(c);
if (it != hashMap.end()){
it->second.second++;
// cout << it->first << " "<< it->second.first <<" "<< it->second.second <<endl;
}
else {
Inval++;
}
}
int cnt = 0;
while (cnt < vec.size()){
auto it = hashMap.find(vec[cnt++]);
if (it != hashMap.end()){
cout << it->first << " : " << it->second.second << endl;
}
}
cout << "Invalid" << " : " << Inval <<endl;
return 0;
}
