uva170-Clock patience

<span style="font-family: Arial, Helvetica, sans-serif;">/*题目描述有问题,发牌是从k开始发到A 然后最上面一层是输入的第一行,第二层是第二行,以此类推*/</span>
<span style="font-family: Arial, Helvetica, sans-serif;">#include <iostream></span>
#include <queue>
#include <cstdio>
#include <cstring>
using namespace std;
struct card{
    int vis,num;
    char color;
};
int main()
{
    char s[5][20][5];
    queue<card> que[20];
    card cd;
    while(1){
        bool flag=true;
        for(int i=0;i<4;i++){
            for(int j=13;j>0;j--){
                scanf(" %c",&s[i][j][0]);
                scanf("%c",&s[i][j][1]);
                if(s[i][j][0]=='#'){
                        flag=false;
                        break;
                }
                int dig;
                if(s[i][j][0]-'A'==0){dig=1;}
                else if(s[i][j][0]-'T'==0){dig=10;}
                else if(s[i][j][0]-'J'==0){dig=11;}
                else if(s[i][j][0]-'Q'==0){dig=12;}
                else if(s[i][j][0]-'K'==0){dig=13;}
                else dig=s[i][j][0]-'0';
                cd.num=dig;cd.color=s[i][j][1];cd.vis=0;
                que[j].push(cd);
            }
            if(!flag) break;
        }
        if(!flag) break;
        int ans=1;
        cd=que[13].front();
        que[13].pop();
        int d=cd.num;
        cd.vis=1;
        card nima;
        while(1){
            que[d].push(cd);
            nima.num=cd.num,nima.color=cd.color,nima.vis=cd.vis;
            cd=que[d].front();
            if(cd.vis==1){
                break;
            }
            cd.vis=1;
            que[d].pop();
            d=cd.num;
            ans++;
        }
        char str;
        if(nima.num==1){str='A';}
        else if(nima.num==10){str='T';}
        else if(nima.num==11){str='J';}
        else if(nima.num==12){str='Q';}
        else if(nima.num==13){str='K';}
        else{str=nima.num+'0';}
        printf("%02d,%c%c\n",ans,str,nima.color);
        for(int i=1;i<=13;i++){
            while(!que[i].empty()){
                que[i].pop();
            }
        }
    }
    return 0;
}

posted @ 2014-10-25 16:16  Scale_the_heights  阅读(218)  评论(0编辑  收藏  举报