https://www.patest.cn/contests/gplt/L2-019
#include<cstring>
#include<cstdio>
#include<algorithm>
int cmp1(const void *a,const void *b)
{
char *s1=(char*)a;
char *s2=(char*)b;
return strcmp(s1,s2);
}
int n,m,i,j;
char s[500010];// 开始的时候数组开小了,错了一个用例
char res[5001][20];
char cz[10010][20];
int a[10010];
double ave;
int ans;
//被该用户点赞次数大于其点赞平均数、且不在其关注列表上的人
int main()
{
//freopen("C:\\Users\\Administrator\\Desktop\\in.txt","r",stdin); 记得注释掉
scanf("%d",&n);
gets(s);//注意这里的处理,根据题目输入特点
scanf("%d",&m);
double sum=0;//和
for( i=0;i<m;i++)
{
scanf("%s %d",&cz[i],&a[i]);
sum+=a[i];
}
ave = sum/m;//平均数
//printf("%.2f",ave);
ans=0;
for( i=0;i<m;i++)
{
if(a[i]<ave)//小于平均数的直接不予考虑
continue;
if(strstr(s,cz[i])==NULL)//strstr(a,b)判断b是不是a的子串,不是的话会返回NULL
{
strcpy(res[ans++],cz[i]);//得到结果,拷贝到result数组
}
}
qsort(res,ans,sizeof(char)*20,cmp1);//字符串排序 参考
for( i=0;i<ans;i++)
{
printf("%s\n",res[i]);
}
if(ans==0)//不要忘记处理无的情况
printf("Bing Mei You\n");
return 0;
}