hdu 5228 ZCC loves straight flush

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
    int t,ans,i,j,a[20][20],m,k,n;
    char s[20];
    scanf("%d\n",&t);
    while(t--)
    {
        memset(a,0,sizeof(a));
        for(i=0;i<5;i++)
        {
            scanf("%s",s);
            if(strlen(s)==3)
            {
                m=(s[1]-48)*10+s[2]-'0';
                a[s[0]-'A'][m]++;
            }
            else
            {
                a[s[0]-'A'][s[1]-'0']++;
            }
        }
        ans=9;
        for(i=0;i<4;i++)
        {
            for(j=1;j<=9;j++)
            {
                n=5;
                for(k=0;k<5;k++)
                    if(a[i][j+k]) n--;
                ans=min(n,ans);
            }
            if(a[i][1]==1) n=4;
            else n=5;
            for(k=0;k<4;k++)
                if(a[i][10+k]) n--;
            ans=min(ans,n);
        }
        printf("%d\n",ans);
    }
    return 0;
}

你可能感兴趣的:(hdu 5228 ZCC loves straight flush)