活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include <iterator>
#include<map>
using namespace  std;
#define int long long 
const int N =2e5+10;

struct st{
	char a;
	int m=0;
}p[N];

bool cmp(st x,st y){
	if(x.m!=y.m){
		return x.m>y.m;
	}
	return x.a<y.a;
}

void solve(){
	int n,m;
    string s[N]; // 用来存储候选人
    cin>>n;
    map<string,int>ma;// 用来存储候选人及他们的票数
    set<string>st; // 这个用来判断是否是候选人 \// 但其实可以用map来判重的
    for(int i=1;i<=n;i++){
        cin>>s[i];
        ma[s[i]]=0;
        st.insert(s[i]);// 插入
    }
    cin>>m;
    int cnt=0;
    for(int i=1;i<=m;i++){
        string a;
        cin>>a; 
        if(ma.count(a)==0){ // 判断是否是候选人
            cnt++;
            continue;
        }
        ma[a]++;
    }
    //set<string>::iterator it;
    for(int it = 1;it<=n;it++){ // 从头开始遍历
        cout<<s[it]<<" : "<<ma[s[it]]<<"\n";
    }
    cout<<"Invalid : "<<cnt;
}

signed main(){
	
	int T=1;
 	//cin>>T;
	while(T--){
		solve();
	}
	return 0;
}
活动地址: 牛客春招刷题训练营 - 编程打卡活动