棋牌类网站设计建设,wordpress外贸建站,旅游网站建设报告,如何做信用网站截图ICPC
题目描述
ACM/ICPC比赛涉及的知识点非常多#xff0c;一个队伍三个人需要能够互补。一个队伍某个知识点的高度是三个人中水平最高的那个人决定。现在给你三个人的每个知识点的水平情况#xff0c;请计算一下这个队伍的水平。
输入
存在多个样例。每个样例的第一行是…ICPC
题目描述
ACM/ICPC比赛涉及的知识点非常多一个队伍三个人需要能够互补。一个队伍某个知识点的高度是三个人中水平最高的那个人决定。现在给你三个人的每个知识点的水平情况请计算一下这个队伍的水平。
输入
存在多个样例。每个样例的第一行是一个整数N(3≤N≤100)表示所有知识点的个数。 以后三行为每个人每个知识点的水平情况。水平用A到E表示一共5级A最强E最弱依次递减。
输出
每个样例输出两行第一行为一个字符串一个队伍的各个知识点的水平情况。第二行是5个整数表示5个级别知识点的个数,每个整数之间有一个空格。
样例输入
3
ABC
BBB
AAE
4
DDBD
DEDC
CDDE
0
样例输出
AAB
2 1 0 0 0
CDBC
0 1 2 1 0
#includebits/stdc.h
using namespace std;const int N110;
char s1[N],s2[N],s3[N],m[N],num[10];int main()
{int n;while(~scanf(%d,n)){if(n0) break;scanf(%s,s1);scanf(%s,s2);scanf(%s,s3);memset(m,0,sizeof m);for(int i0;in;i){m[i]min({s1[i],s2[i],s3[i]});}for(int i0;in;i) printf(%c,m[i]);printf(\n);memset(num,0,sizeof num);for(int i0;in;i) num[m[i]-A];for(int i0;i4;i) printf(%d ,num[i]);printf(%d\n,num[4]);}return 0;
}
每一个知识点的水平是由最强的人决定的这就是所谓的长板效应。靠前的字母表示水平高我们实际上只需要找到每一个知识点对应的最靠前的字母即可找到每一列最靠前的字母就表示找到了最高的水平然后一次输出代表最高水平的字母即可。
使用一个计数器来存储每一个最高水平字母出现的次数然后把这个次数依次输出即可
注意一下代码细节使用min函数寻找最小值如果要寻找三个元素里面的最小值可以使用大括号括起来像这样子 m[i]min({s1[i],s2[i],s3[i]});
每一次循环都要初始化m数组和计数数组防止上一次循环的结果对后一次循环造成影响
注意输出的格式要求有时候最后一个元素后面不能有空格