#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<set>
#include<map>
using namespace std;
struct node
{
string name;
int time;
}a[10002];
int cmp(node a,node b)
{
return a.name<b.name;//用户ID字母序的升序输出
}
string b[10002];
int main()
{
map<string,int>ff;//把出现过的名字用map容器存,能方便判断是否出现过
int n,i,t,j,m,sum=0,len=0;
char aa[5];
cin>>n;
for(i=0;i<n;i++)
{
cin>>aa;
ff[aa]++;
}
cin>>t;
for(i=0;i<t;i++)
{
cin>>a[i].name>>a[i].time;
sum+=a[i].time;
}
sum/=t;
sort(a,a+t,cmp);
for(i=0;i<t;i++)
{
if(a[i].time>sum&&ff[a[i].name]==0)//满足该用户点赞次数大于其点赞平均数、且不在其关注列表上
b[len++]=a[i].name;
}
if(len>0)
{
for(i=0;i<len;i++)
cout<<b[i]<<endl;
}
else
cout<<"Bing Mei You"<<endl;
return 0;
}
算法设计pta上题,粗略的自学了 stl容器中的map容器怎么输入和输出 以及判空
也顺便复习了下大一遗忘的用结构体定义数组