online_judge_1150

183 篇文章 0 订阅
#include <iostream>
#include <string>
#include <sstream>
#include <cstring>

using namespace std;

int main()
{
    bool mark[12];
    //char c[13] = "ABCDEFGHIJKL";
    string str,re;
    char result;
    int n,i,j,k,len1;
    string sa[3];
    string sup,sdown;
    while(cin>>n)
    {
        cin.ignore();
        for(i=0; i<n; ++i)
        {
            sup = "";
            sdown = "";
            memset(mark, 0 ,sizeof(mark));
            for(j=0; j<3; ++j)
            {

                getline(cin,str);
                istringstream itr(str);
                itr>>sa[0]>>sa[1]>>sa[2];
                if(sa[2] == "down")
                {
                    sup += sa[1];
                    sdown += sa[0];
                }
                else if(sa[2] == "even")
                {
                    int l = sa[0].size();
                    for(k=0; k<l; ++k)
                    {
                        int index = sa[0][k] - 'A';
                        mark[index] = true;
                        index = sa[1][k] - 'A';
                        mark[index] = true;
                    }
                }
                else if(sa[2] == "up")
                {
                    sup += sa[0];
                    sdown += sa[1];
                }
            }
            len1 = sup.size();
            for(j=0; j<len1; ++j)
            {
                k = sup[j] - 'A';
                if(mark[k]==false && sdown.find(sup[j])==string::npos)
                {
                    re = "heavy";
                    result = sup[j];
                    break;
                }
            }
            for(j=0; j<len1; ++j)
            {
                k = sdown[j] - 'A';
                if(mark[k]==false && sup.find(sdown[j])==string::npos)
                {
                    re = "light";
                    result = sdown[j];
                    break;
                }
            }
            cout<<result<<" is the counterfeit coin and it is "<<re<<"."<<endl;
        }
    }
    return 0;
}

 

好题目,能经受住考验……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值