1018 锤子剪刀布 (20分)

模拟题,注意答案要求字典序最小。

map<char,int> mpa,mpb;
int res[2][3];
int n;

int main()
{
    cin>>n;

    for(int i=0;i<n;i++)
    {
        char a,b;
        cin>>a>>b;
        if(a != b)
        {
            if(a == 'C')
            {
                if(b == 'J') res[0][0]++,res[1][2]++,mpa['C']++;
                if(b == 'B') res[1][0]++,res[0][2]++,mpb['B']++;
            }
            else if(a == 'J')
            {
                if(b == 'B') res[0][0]++,res[1][2]++,mpa['J']++;
                if(b == 'C') res[1][0]++,res[0][2]++,mpb['C']++;
            }
            else //a == 'B'
            {
                if(b == 'C') res[0][0]++,res[1][2]++,mpa['B']++;
                if(b == 'J') res[1][0]++,res[0][2]++,mpb['J']++;
            }
        }
        else res[0][1]++,res[1][1]++;
    }

    for(int i=0;i<2;i++,cout<<endl)
        for(int j=0;j<3;j++)
        {
            if(j) cout<<' '<<res[i][j];
            else cout<<res[i][j];
        }

    char maxapos='B';
    for(map<char,int>::iterator it=mpa.begin();it!=mpa.end();it++)
        if(it->second > mpa[maxapos])
            maxapos=it->first;

    char maxbpos='B';
    for(map<char,int>::iterator it=mpb.begin();it!=mpb.end();it++)
        if(it->second > mpb[maxbpos])
            maxbpos=it->first;

    cout<<maxapos<<' '<<maxbpos<<endl;
    //system("pause");
    return 0;
}
上一篇:C++版浙大PAT乙级1018(20分)


下一篇:P1802 五倍经验日【题解】