poj 2062

#include<iostream>

#include<queue>

#include<algorithm>

#include<map>

#include<string.h>

#include<math.h>

#include<stdio.h>

#include <iomanip>

#include <stack>

#include <sstream>


using namespace std;



struct player

{

    int no;

    int type;

};

player adam[28];

player eve[28];


int getnum(char s[3])

{

    int number=0;

    if(s[0]>='2' && s[0]<='9')

        number = s[0] - '0';

    if(s[0]=='T')

        number =10;

    if(s[0]=='J')

        number=11;

    if(s[0]=='Q')

        number=12;

    if(s[0]=='K')

        number=13;

    if(s[0]=='A')

        number=14;

    return number;

}

bool cmp(const player &a,const player &b)

{

    if(a.no==b.no)

        return a.type<b.type;

    else return a.no<b.no;

}


int main()

{

    int i,j;

    int Cases;

    char card[3];

    int num_of_cards;

    scanf("%d",&Cases);

    while (Cases--)

    {

        scanf("%d",&num_of_cards);

        for(i=0;i<num_of_cards;i++)

        {

            cin>>card;

            int num = getnum(card);

            adam[i].no = num;

            if(card[1]=='C')

                num = 1;

            if(card[1]=='D')

                num =2;

            if(card[1]=='S')

                num=3;

            if(card[1]=='H')

                num = 4;

            adam[i].type = num;

        }

        sort(adam,adam+num_of_cards,cmp);

        ///

        for(i=0;i<num_of_cards;i++)

        {

            cin>>card;

            int num = getnum(card);

            eve[i].no = num;

            if(card[1]=='C')

                num = 1;

            if(card[1]=='D')

                num =2;

            if(card[1]=='S')

                num=3;

            if(card[1]=='H')

                num = 4;

            eve[i].type = num;

        }

        sort(eve,eve+num_of_cards,cmp);

        int Count =0;

        int flag =0;

        for(i=0;i<num_of_cards;i++)

            for(j=flag;j<num_of_cards;j++)

            {

                if(eve[j].no>adam[i].no || (eve[j].no==adam[i].no && eve[j].type>adam[i].type))

                {

                    Count++;

                flag = j+1 ;

                break;

                }

            }

        printf("%d\n",Count);

        

    }

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值