欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

牛客练习赛 22 A

程序员文章站 2022-06-08 13:30:46
...

牛客练习赛 22 A

给6个火柴棍,问能不能拼成“熊”或者“象”

“熊”:4根棍子长度一样,另外2根棍子长度不一样

“象”:4根棍子长度一样,另外2根棍子长度一样。

如果可以拼出熊,输出“Bear”

如果可以拼出象,输出“Elephant”

如果都不可以拼出,输出“Hernia”

输入描述:

一行六个数表示每个火柴棍的长度

输出描述:

输出一行一个字符串表示答案

示例1

输入

复制

4 2 5 4 4 4

输出

复制

Bear

示例2

输入

复制

4 4 5 4 4 5

输出

复制

Elephant

示例3

输入

复制

1 2 3 4 5 6

输出

复制

Hernia

备注:

火柴棍长度在[1,9]内

题目链接:https://www.nowcoder.com/acm/contest/132/A

题解:注意6个长度一样的包括4个一样+2个一样。5个一样的+1个不一样包括4个一样+2个不一样的,set将同样的数字删除。

#include<iostream>
#include<cstdio>
#include<algorithm> 
#include<cstring>
#include<set>
using namespace std;

int a[6], b[10];
set<int> s;
int main()
{
    
    int x;
    for(int i = 0; i < 6; i++)
    {
        cin >> a[i] ;
        s.insert(a[i]);
    }
    if(s.size()==1)
        puts("Elephant");
    else if(s.size() == 2)
    {
        memset(b, 0, sizeof b);
        for(int i = 0; i < 6; i++)
            b[a[i]] ++;
        for(int i = 1; i < 10; i++)
        {
            if(b[i] == 4)
            {
                puts("Elephant");
                break;
            }    
            if(b[i]==5)
            {
                puts("Bear");
                break;
             }         
        }        
    }
    else if(s.size()==3)
    {
        for(int i = 0; i < 6; i++)
            b[a[i]] ++;
        for(int i = 1; i < 10; i++)
            if(b[i] == 4)    
                puts("Bear");
    }
    else 
        puts("Hernia");
    return 0;
}