1 条题解

  • 0
    @ 2021-8-7 18:41:45

    C++ :

    #include <cstdio>
    using namespace std;
    
    int pile[14][5], open[13];
    
    inline bool ban(char c) {
        if(c <= '9' && c >= '0') return 0;
        if(c == 'A' || c == 'J' || c == 'Q' || c == 'K') {
            return 0;
        }
        return 1;
    }
    
    inline int get(char c) {
        if(c == 'A') {
            return 1;
        }
        if(c == 'J') {
            return 11;
        }
        if(c == 'Q') {
            return 12;
        }
        if(c == 'K') {
            return 13;
        }
        if(c == '0') {
            return 10;
        }
        return c - '0';
    }
    
    int main() {
        for(int i = 1; i <= 13; i++) {
            for(int j = 4; j >= 1; j--) {
                char c = getchar();
                while(ban(c)) {
                    c = getchar();
                }
                pile[i][j] = get(c);
            }
        }
        pile[13][0] = 4;
        while(pile[13][0]) {
            int k = pile[13][pile[13][0]];
            pile[13][0]--;
            while(k != 13) {
                open[k]++;
                pile[k][0]++;
                k = pile[k][pile[k][0]];
            }
        }
        int ans = 0;
        for(int i = 1; i <= 12; i++) {
            ans += (open[i] == 4);
        }
        printf("%d", ans);
        return 0;
    }
    
    
    • 1

    信息

    ID
    28
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    80
    已通过
    75
    上传者