组队选拔赛01 ---- trener

Problem Description

Mirko has been moving up in the world of basketball, starting as a mere spectator, mastering snack salesmanship, finally reach the coveted position of the national team coach. He is now facing a difficult
task: selecting the five primary players for the upcoming match against Tajikistan.Since Mirko is incredibly lazy, he doesn’t bother remembering players’ names, let alone their actual skills. That’s why he has settled on selecting five players who share the same first letter of their surnames, so that he can remember them more easily. If there are no five players sharing the first letter of their surnames, Mirko will simply forfeit the game!
In order to obtain insight into possibilities for his team, Mirko wants to know all the different letters that his primary team’s surnames may begin with.

Input

There are multiple test cases. Please process till EOF.
The first line of input contains the positive integer N (1 ≤ N ≤ 150), the number of players that Mirko has available.
Each of the following N lines contains one word (at most 30 characters long, consisting only of lowercase English letters), a surname of one of the players.

Output

If there are no five players that Mirko can select matching his criteria, output a single line containing the word “PREDAJA” (without quotes). Otherwise, output all possible first letters of representation player surnames, sorted lexicographically, in a single line with no spaces.

Sample Input

18
babic
keksic
boric
bukic
sarmic
balic
kruzic
hrenovkic
beslic
boksic
krafnic
pecivic
klavirkovic
kukumaric
sunkic
kolacic
kovacic
prijestolonasljednikovic
6
michael
jordan
lebron
james
kobe
bryant

Sample Output

bk
PREDAJA

解题思路

题意就是 找出名字首字母相同且人数大等于5的 字母.
用map的话可以映射字母和当前的人数,再判断是否大等于5即可.

参考代码

#include <cstdio>
#include <map>
using namespace std;
int main()
{
    int n;
    char name[35];
    while (~scanf("%d", &n)){
        map<char,int> m;
        while (n--){
            scanf("%s", name);
            m[name[0]]++; 
        }
        bool find = false;
        for (int i = 'a';i <= 'z';i++)
            if (m[i] >= 5){
                printf("%c",i);
                find = true;
            }
        if (!find)  printf("PREDAJA");
        printf("\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值