描述
假定图书馆新进了m (10 <= m <= 999)本图书,它们都是由n (1 <= n <= 26)个作者独立或相互合作编著的。
假设m本图书编号为整数(1到999),作者的姓名为字母('A'到'Z'),请根据图书作者列表找出参与编著图书最多的作者和他的图书列表。
输入
第一行为所进图书数量m,其余m行,每行是一本图书的信息,其中第一个整数为图书编号,接着一个空格之后是一个由大写英文字母组成的没有重复字符的字符串,每个字母代表一个作者。
输入数据保证仅有一个作者出书最多。
输出
输出有多行:
第一行为出书最多的作者字母;
第二行为作者出书的数量;其余各行为作者参与编著的图书编号(按输入顺字输出)。
输入样例 1
11 307 F 895 H 410 GPKCV 567 SPIM 822 YSHDLPM 834 BXPRD 872 LJU 791 BPJWIA 580 AGMVY 619 NAFL 233 PDJWXK输出样例 1
P 6 410 567 822 834 791 233#include<bits/stdc++.h> using namespace std; int ct[26][1005]; int main() { char s[30]; int m, b, p, mxi = 0; scanf("%d", &m); for(int i = 1; i <= m; ++i) { scanf("%d %s", &b, s); int len = strlen(s); for(int i = 0; i < len; ++i) { p = s[i]-'A';//作者编号 ct[p][++ct[p][0]] = b;//作者p的作品增加一个作品b } } for(int i = 0; i < 26; ++i) { if(ct[i][0] > ct[mxi][0]) mxi = i; } printf("%c\n%d\n", 'A'+mxi, ct[mxi][0]); for(int i = 1; i <= ct[mxi][0]; ++i) printf("%d\n", ct[mxi][i]); return 0; }
求一键三连。
出书最多(c++)
最新推荐文章于 2024-03-22 11:07:48 发布