QUST日常训练(1)北极熊和大象

来自圣彼得堡动物园的北极熊MenshykovUslada和来自基普动物园的大象Horace取得了6支木棍,他们要一起来玩一个木棍游戏。 MenshykovUslada和Horace决定用这些木棍去做一头大象或一头熊。它们可以按照以下方法去拼接一个动物:

 

l  四根棒代表动物的腿,这些木棒应具有相同的长度。

l  剩下的两根代表动物的头部和身体。熊的头棒必须比身体棒短。然而,大象有一个长鼻子,他的头棒必须和身体棒相等。请注意,以上腿棒和头部以及身体棒之间的关系没有任何限制。

  QUST日常训练(1)北极熊和大象_第1张图片 QUST日常训练(1)北极熊和大象_第2张图片                              

动物园饲养员希望比赛结束后棒子没有损坏。你的任务是找出哪些动物可以从给定的一组棒组合成。

输入

输入第一行为数据组数T;

每个测试数据输入6个整数li

输出

如果可以组合成熊,输出"Bear",如果可以组合成大象,输出"Elephant"否则输出"Alien"

样例输入

34 2 5 4 4 44 4 5 4 4 51 2 3 4 5 6

样例输出

BearElephantAlien

提示

【数据说明】


对于 30%的数据,T=1


对于 80%的数据,0<T<10;


对于 100%的数据,0<T<90,1<=li<=9.



分析:水题(锻炼一下map。。。


#include <cstdio>
#include <cstring>
#include <map>
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int t;
    cin>>t;
    map <int,int> p;
    while(t--)
    {
        p.clear();
        int b;
        for (int i=0;i<6;i++)
        {
            cin>>b;
            if ( p.count(b) == 0) p[b]=1;
            else p[b]++;
        }
        int ok=0;
        map<int,int>::iterator it=p.begin();
        for (;it!=p.end();it++)
        {
            if (it->second >=4) {it->second-=4;ok=1;break;}
        }
        if (!ok) printf("Alien\n");
        else
        {
            int a[2],g=0;
            for (it=p.begin();it!=p.end();it++)
            {
                if (it->second>0 && it->second <2) a[g++]=it->first;
                else if (it->second == 2) a[0]=a[1]=it->first;
            }
            if (a[0]-a[1] == 0) printf("Elephant\n");
            else printf("Bear\n");
        }
    }
    return 0;
}




你可能感兴趣的:(QUST日常训练(1)北极熊和大象)