九度 1363 欢乐打扑克 【简单水题暴力模拟】

传送门
//中文题面就不说了.
直接暴力判断, 遇到1,2加个13就是了, 然后注意两幅牌都要加, 然后输出答案时再减个13就是了.

const int maxn = 1e2+5;
int cas=1;
int a[maxn],b[maxn];
void solve()
{
    int n;
    while(~scanf("%d",&n)){
        Fill(a,0);
        for(int i=1;i<=n;i++) {
            int u; cin >> u;
            if(u==1||u==2) u += 13;
            a[u]++;
        }
        for(int i=1;i<=5;i++){
            scanf("%d",&b[i]);
            if(b[i] == 1 || b[i] == 2) b[i] += 13;
        }
        int t = -1,k=-1;
        for(int i=3;i<=15;i++){
            if(a[i]>=3 && i>b[1]){
                t = i;
                for(int j=3;j<=15;j++){
                    if(a[j]>=2 && i != j){
                        k = j;
                        break;
                    }
                }
                if(t != -1 && k != -1) break;
            }
        }
        if(t > 13) t -= 13;
        if(k > 13) k -= 13;
        if(t == -1 || k == -1) puts("My God");
        else printf("%d %d %d %d %d\n",t,t,t,k,k);
    }
}

你可能感兴趣的:(BFS/DFS搜索or暴力模拟)