L2-019 悄悄关注 (25分) map容器模拟
代码:
1 //一道模拟水题,就用来给map练手吧 2 #include<stdio.h> 3 #include<string.h> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<map> 8 using namespace std; 9 const int maxn=1e5+5; 10 int main() 11 { 12 int n,m,k,t,sum = 0; 13 string s; 14 scanf("%d",&n); 15 map<string,int> m1,m2; 16 for(int i=0;i<n;i++){ 17 cin>>s; 18 m1[s] = 1;//标记为1表示被关注的id 19 } 20 scanf("%d",&m); 21 for(int i=0;i<m;i++){ 22 cin>>s>>k; 23 m2[s] = k; 24 sum += k;//总点赞数 25 } 26 t = sum/m;//平均点赞数 27 int flag = 0;//标记有没有悄悄关注的人 28 map<string,int>::iterator it; 29 for(it=m2.begin();it!=m2.end();it++){ 30 if(it->second>t&&m1[it->first]==0){//满足被该用户点赞次数大于其点赞平均数、且不在其关注列表上的人 31 cout<<it->first<<endl; 32 flag = 1; 33 } 34 } 35 if(flag==0){ 36 printf("Bing Mei You\n"); 37 } 38 return 0; 39 }