前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >42:出书最多

42:出书最多

作者头像
attack
发布2018-04-12 14:46:35
8700
发布2018-04-12 14:46:35
举报

42:出书最多

总时间限制: 1000ms 内存限制: 65536kB描述

假定图书馆新进了m(10 ≤ m ≤ 999)本图书,它们都是由n(1 ≤ n ≤ 26)个作者独立或相互合作编著的。假设m本图书编号为整数(1到999),作者的姓名为字母('A'到'Z'),请根据图书作者列表找出参与编著图书最多的作者和他的图书列表。

输入第一行为所进图书数量m,其余m行,每行是一本图书的信息,其中第一个整数为图书编号,接着一个空格之后是一个由大写英文字母组成的没有重复字符的字符串,每个字母代表一个作者。输入数据保证仅有一个作者出书最多。输出输出有多行:  第一行为出书最多的作者字母;  第二行为作者出书的数量;  其余各行为作者参与编著的图书编号(按输入顺序输出)。样例输入

代码语言:javascript
复制
11
307 F
895 H
410 GPKCV
567 SPIM
822 YSHDLPM
834 BXPRD
872 LJU
791 BPJWIA
580 AGMVY
619 NAFL
233 PDJWXK

样例输出

代码语言:javascript
复制
P
6
410
567
822
834
791
233

来源北京大学 计算概论 06 心理及信管 期末考试

代码语言:javascript
复制
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int a[10001];
 6 int now;
 7 int sl[10001];
 8 struct node
 9 {
10     int a;//编号 
11     char b[1001];//作者 
12     int lb;
13 }gs[1001];
14 int maxn=-1;
15 char ans;
16 int main()
17 {
18     int n;
19     cin>>n;
20     for(int i=1;i<=n;i++)
21     {
22         cin>>gs[i].a;
23         //gets(gs[i].b);
24         scanf("%s",&gs[i].b);
25         for(int j=0;j<strlen(gs[i].b);j++)
26         {
27             sl[gs[i].b[j]]++;
28             if(sl[gs[i].b[j]]>maxn)
29             {
30                 ans=gs[i].b[j];
31                 maxn=sl[gs[i].b[j]];
32             }
33         }
34     }
35     cout<<ans<<endl;
36     cout<<maxn<<endl;
37     for(int i=1;i<=n;i++)
38     {
39         for(int j=0;j<strlen(gs[i].b);j++)
40         {
41             if(gs[i].b[j]==ans)
42             {
43                 cout<<gs[i].a<<endl;
44             }
45         }
46     }
47     
48     return 0;
49 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 42:出书最多
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档