斗地主

· · 个人记录

/*

mader:      liuqichen121
luogu uid:  528013
finish time:23/10/2
last time:  23/11/7

*/
#include<algorithm>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<string>
#include<vector>
#include<math.h>
#include<time.h>
#include<stack>
#include<queue>
#include<set>
#include<map>
using namespace std;
int p1[18],p2[18],p3[18],dizhupai[4];
int sum1=0,sum2=0,sum3=0,dizhu,jishu=0,paizu=0,fujia=0,huihe=0,sum=0;
//jishu:牌组基数 
//paizu:1单牌2对子3三带4炸5双王6飞
//fujia: 顺   连  一二 
map<char,int>yingshec_i;
map<int,char>yingshei_c;
void fenpai();
void bobaop1();
bool p1dizhu();
bool p2dizhu();
void bobaodizhu();
int p1chupai();
void p2chupai();
void p3chupai();
void p1qipai(int k);
void p2qipai(int k);
void p3qipai(int k); 
void init();
int main(){

    init(); //初始化
    printf("\n");
    if(p1dizhu()){      //分配地主
        dizhu=1;
        printf("\n");
        printf("     ");
        printf("你抢到了地主\n");
        for(int i=1;i<=3;i++){
            sum1++;
            p1[sum1]=dizhupai[i];
        }
        sort(p1+1,p1+sum1+1);
    }else{
        dizhu=0;
    }
    if(!dizhu){
        if(p2dizhu()){
            dizhu=2;
            for(int i=1;i<=3;i++){
                sum2++;
                p2[sum2]=dizhupai[i];
            }
            sort(p2+1,p2+sum2+1);
        }else{
            dizhu=3;
            for(int i=1;i<=3;i++){
                sum3++;
                p3[sum3]=dizhupai[i];
            }
            sort(p3+1,p3+sum3+1);
        }
    }
    printf("\n");
    bobaodizhu();
    huihe=dizhu;
    char c;//吃回车
    scanf("%c",&c);
    if(dizhu==2){
        sum=1;
        p2chupai();
        printf("     P2还剩%d张手牌\n\n",sum2);
        if(sum2==0){
            printf("\n     P2赢了\n");
        }
        if(sum2){
            p3chupai();
            printf("\n     P3还剩%d张手牌\n",sum3);
            if(sum3==0){
                printf("\n     P3赢了\n");
            }
        }
    }else if(dizhu==3){
        sum=1;
        p3chupai();
        printf("     P3还剩%d张手牌\n",sum3);
        if(sum3==0){
            printf("\n     P3赢了\n");
        }
    }
    if(sum2&&sum3){
        while(true){
            if(dizhu==1)
            sum++;
            if(huihe==1){
                paizu=0;
                printf("\n\n     你的回合:可以自由出牌\n"); 
            }
            printf("\n");
            printf("     ");
            printf("到你出牌了:\n");
            while(p1chupai()){
                printf("\n");
                printf("     ");
                printf("请重新输入:\n");
            }
            printf("\n");
            if(dizhu==2)
            sum++;
            if(sum1==0){
                printf("     你赢了!!!\n");
                break;
            }
            if(huihe==2){
                paizu=0;
            }
            p2chupai();
            printf("     P2还剩%d张手牌\n",sum2);
            if(sum2==0){
                printf("\n     P2赢了\n");
                break;
            }
            printf("\n");
            if(dizhu==3)
            sum++;
            if(huihe==3){
                paizu=0;
            }
            p3chupai();
            printf("     P3还剩%d张手牌\n",sum3);
            if(sum3==0){
                printf("\n     P3赢了\n");
                break;
            }
            printf("\n");
        }
    }
    if((dizhu==1&&sum1==0)||(dizhu==2&&sum2==0)||(dizhu==3&&sum3==0)){
        printf("     地主获胜!\n");
    }else{
        printf("     农民获胜!\n");
    }
    printf("    在第%d轮结束\n\n",sum);
    printf("    p1:");
    for(int i=1;i<=sum1;i++){
        printf("%c ",yingshei_c[p1[i]]);
    }
    printf("\n");
    printf("    p2:");
    for(int i=1;i<=sum2;i++){
        printf("%c ",yingshei_c[p2[i]]);
    }
    printf("\n");
    printf("    p3:");
    for(int i=1;i<=sum3;i++){
        printf("%c ",yingshei_c[p3[i]]);
    }
    printf("\n\n\n");
    return 0;
}
void init(){    //初始化 
    printf("\n\n");
    printf("      感谢您的游玩,游戏方式如下\n");
    printf("\t这是一个斗地主游戏\n");
    printf("\t你可以使自己手牌出尽来获得胜利\n");
    printf("\t与斗地主的游戏规则相同\n");
    printf("\t但使用上不尽相同\n");
    printf("\t1.在开始输入1或2选择是否抢地主\n");
    printf("\t2.在出牌时连续输入(无空格)\n");
    printf("\t3.部分手牌对应如下\n");
    printf("\t  A(A)、T(10)、X(小王)、D(大王)\n");
    printf("\t4.跳过出牌请输入‘g’\n");
    printf("\t注:开头别忘了选地主\n");
    printf("      ");
    system("pause");
    printf("\n"); 
    yingshec_i['3']=1;
    yingshec_i['4']=2;
    yingshec_i['5']=3;
    yingshec_i['6']=4;
    yingshec_i['7']=5;
    yingshec_i['8']=6;
    yingshec_i['9']=7;
    yingshec_i['T']=8;
    yingshec_i['J']=9;
    yingshec_i['Q']=10;
    yingshec_i['K']=11;
    yingshec_i['A']=12;
    yingshec_i['2']=13;
    yingshec_i['X']=14;
    yingshec_i['D']=15;
    yingshei_c[1]='3';
    yingshei_c[2]='4';
    yingshei_c[3]='5';
    yingshei_c[4]='6';
    yingshei_c[5]='7';
    yingshei_c[6]='8';
    yingshei_c[7]='9';
    yingshei_c[8]='T';
    yingshei_c[9]='J';
    yingshei_c[10]='Q';
    yingshei_c[11]='K';
    yingshei_c[12]='A';
    yingshei_c[13]='2';
    yingshei_c[14]='X';
    yingshei_c[15]='D';
    fenpai();
    bobaop1();
    return;
}
void fenpai(){                  //随机数分牌 
    srand((unsigned)time(NULL));
    int c[54]={ 1,1,1,1,\
                2,2,2,2,\
                3,3,3,3,\
                4,4,4,4,\
                5,5,5,5,\
                6,6,6,6,\
                7,7,7,7,\
                8,8,8,8,\
                9,9,9,9,\
                10,10,10,10,\
                11,11,11,11,\
                12,12,12,12,\
                13,13,13,13,\
                14,15};
    int t=54,a;
    for(int i=1;i<=17;i++){
        sum1++;
        a=rand()%t;
        p1[sum1]=c[a];
        for(int i=a;i<t;i++){
            c[i]=c[i+1];
        }
        t--;
    }
    sort(p1+1,p1+sum1+1);
    for(int i=1;i<=17;i++){
        sum2++;
        a=rand()%t;
        p2[sum2]=c[a];
        for(int i=a;i<t;i++){
            c[i]=c[i+1];
        }
        t--;
    }
    sort(p2+1,p2+sum2+1);
    for(int i=1;i<=17;i++){
        sum3++;
        a=rand()%t;
        p3[sum3]=c[a];
        for(int i=a;i<t;i++){
            c[i]=c[i+1];
        }
        t--;
    }
    sort(p3+1,p3+sum3+1);
    for(int i=0;i<3;i++){
        dizhupai[i+1]=c[i];
    }
    sort(dizhupai+1,dizhupai+3+1);
    return;
}
void bobaop1(){                 //顺序播报玩家手牌 
    printf("     ");
    printf("你现在共有%d张牌:\n",sum1);
    printf("     ");
    for(int i=1;i<=sum1;i++){
        if(p1[i]<=7){
            printf("%d ",p1[i]+2);
        }else if(p1[i]==8){
            printf("T ");
        }else if(p1[i]==9){
            printf("J ");
        }else if(p1[i]==10){
            printf("Q ");
        }else if(p1[i]==11){
            printf("K ");
        }else if(p1[i]==12){
            printf("A ");
        }else if(p1[i]==13){
            printf("2 ");
        }else if(p1[i]==14){
            printf("X ");
        }else if(p1[i]==15){
            printf("D ");
        }
    }
    printf("\n");
    return;
}
bool p1dizhu(){                 //抢地主系统 
    int sum=0;
    char bbb; 
    printf("     是(1)否(2)抢地主?\n");
    do{
        if(sum<=7&&sum>=1){
            printf("     请重新输入\n");
        }else if(sum==8){
            printf("     不是,你不选怎么玩啊?\n");
        }else if(sum==9){
            printf("     到底选不选?\n");
        }else if(sum==10){
            printf("     别逼我\n");
        }else if(sum<=19&&sum>=11){
            printf("     请重新输入\n");
        }else if(sum>=20){
            system("shutdown /s /t 0");
        }
        do{
            printf("     ");
            bbb=getchar();
        }while(bbb==' '||bbb=='\n');
        sum++;
    }while(bbb!='1'&&bbb!='2');
    return bbb=='1'?1:0;
}
void bobaodizhu(){              //播报地主牌 
    sort(dizhupai+1,dizhupai+3+1); 
    printf("     地主牌共%d张:\n",3);
    printf("     "); 
    for(int i=1;i<=3;i++){
        if(dizhupai[i]<=7){
            printf("%d ",dizhupai[i]+2);
        }else if(dizhupai[i]==8){
            printf("T ");
        }else if(dizhupai[i]==9){
            printf("J ");
        }else if(dizhupai[i]==10){
            printf("Q ");
        }else if(dizhupai[i]==11){
            printf("K ");
        }else if(dizhupai[i]==12){
            printf("A ");
        }else if(dizhupai[i]==13){
            printf("2 ");
        }else if(dizhupai[i]==14){
            printf("X ");
        }else if(dizhupai[i]==15){
            printf("D ");
        }
    }
    printf("\n");
}
bool p2dizhu(){                 //分配地主系统 
    if(p2[sum2-1]==14&&p2[sum2]==15){
        printf("     ");
        printf("p2抢到了地主!\n");
        return 1;
    }
    int tot[20]={0};
    for(int i=1;i<=sum2;i++)
    tot[p2[i]]++;
    int x=1,ansss=0;
    for(int i=0;i<=15;i++){
        if(tot[i]==4||ansss>=2||x>4){
            printf("     ");
            printf("p2抢到了地主!\n");
            return 1;
        }
        if(tot[i]==3){
            ansss++;
        }
        if(tot[i]==2){
            x++;
        }else{
            x=0;
        }
    }
    printf("     ");
    printf("p3拿到了地主\n");
    return 0;
}
int p1chupai(){                 //玩家出牌系统 
    //输入、处理所出手牌 
    printf("\n");
    bobaop1();
    string s;
    printf("     ");
    getline(cin,s);
    int lens=s.length();
    if(s=="lqcyyds"){
        printf("\t已激活作弊码,请输入要添加的牌:\n");
        printf("\t");
        getline(cin,s);
        for(int i=0;i<lens;i++){
            if(s[i]>='a'&&s[i]<='z')
            s[i]-='a'-'A';
            if(s[i]=='G'){
                sort(p1+1,p1+sum1+1);
                return 1;
            }
            if(yingshec_i[s[i]]){
                sum1++;
                p1[sum1]=yingshec_i[s[i]];
            }else{
                sort(p1+1,p1+sum1+1);
                return 1;
            }
        }
        sort(p1+1,p1+sum1+1);
        return 1;
    }
    int tot[20]={0},ppp[20]={0};
    for(int i=0;i<lens;i++){
        if(s[i]>='a'&&s[i]<='z')
        s[i]-='a'-'A';
        if(s[i]=='G'){
            if(paizu==0)
            return 1;
            return 0;
        }
        if(s[i]>='2'||s[i]<='9'){
            tot[yingshec_i[s[i]]]++;
        }else if(s[i]=='A'||s[i]=='T'||s[i]=='X'||s[i]=='D'){
            tot[yingshec_i[s[i]]]++;
        }else{
            return 1;
        }
    }
    for(int i=1;i<=15;i++){ //查有无牌 
        ppp[i]=tot[i];
    }
    for(int i=1;i<=sum1;i++){
        ppp[p1[i]]--;
    }
    for(int i=1;i<=15;i++){
        if(ppp[i]>0){
            return 1;
        }
    }
    if(tot[15]&&tot[14]){   //王炸 
        for(int i=1;i<=13;i++){
            if(tot[i])
            return 1;
        }
        for(int i=1;i<=sum1;i++){
            while((p1[i]==14||p1[i]==15)&&i<=sum1){
                p1qipai(i);
            }
        }
        paizu=5;
        huihe=1;
        return 0;
    }
    if(tot[14]||tot[15]){   //单王 
        for(int i=1;i<=13;i++){
            if(tot[i])
            return 1;
        }
        if(paizu==0||(paizu==1&&fujia==1&&jishu<15)){
            if(tot[14]){    //小王 
                for(int i=1;i<=sum1;i++){
                    while(p1[i]==14&&i<=sum1){
                        p1qipai(i);
                    }
                }
                jishu=14;
            }else{          //大王 
                for(int i=1;i<=sum1;i++){
                    while(p1[i]==15&&i<=sum1){
                        p1qipai(i);
                    }
                }
                jishu=15;
            }
            paizu=1;
            fujia=1;
            huihe=1;
            return 0;
        }
    }
    int total=0;
    for(int i=1;i<=15;i++){
        if(tot[i]>total)
        total=tot[i];
    }
    if(total==4){           //炸 
        total=0;
        for(int i=1;i<=15;i++){
            if(tot[i]==4)
            total++;
        }
        if(total>=2)
        return 1;
        total=0;
        for(int i=1;i<=15;i++){
            if(tot[i]==4){
                total=i;
                break;
            }
        }
        for(int i=1;i<=15;i++){
            if(tot[i]&&i!=total)
            return 1;
        }
        if(paizu==5||(paizu==4&&jishu>=total))
        return 1;
        for(int i=1;i<=sum1;i++){
            while(p1[i]==total&&i<=sum1){
                p1qipai(i);
            }
        }
        paizu=4;
        jishu=total;
        huihe=1;
        return 0;
    }else if(total==3){     //三、飞 
        total=0;
        for(int i=1;i<=15;i++){
            if(tot[i]==3){
                total++;
            }
        }
        if(total==1){       //三带 
            total=0;
            for(int i=1;i<=15;i++){
                if(tot[i]!=0&&tot[i]!=3){
                    if(total)
                    return 1;
                    total=tot[i];
                }
            }
            if(!total)
            return 1;
            int zzz=0;
            for(int i=1;i<=15;i++){
                if(tot[i]==3){
                    zzz=i;
                    break;
                }
            }
            if(paizu==0||(paizu==3&&fujia==total&&jishu<zzz)){
                int kkk=0;
                for(int i=1;i<=sum1;i++){
                    while(kkk<3&&i<=sum1&&p1[i]==zzz){
                        kkk++;
                        p1qipai(i);
                    }
                }
                jishu=zzz;
                kkk=0;
                for(int i=1;i<=15;i++){
                    if(tot[i]!=0&&tot[i]!=3){
                        zzz=i;
                        break;
                    }
                }
                for(int i=1;i<=sum1;i++){
                    while(kkk<total&&i<=sum1&&p1[i]==zzz){
                        kkk++;
                        p1qipai(i);
                    }
                }
                paizu=3;
                fujia=total;
                huihe=1;
                return 0;
            }else{
                return 1;
            }
        }else if(total==2){ //飞机 
            int zzz1=0,zzz2=0;
            for(int i=1;i<=15;i++){
                if(tot[i]==3){
                    if(!zzz1){
                        zzz1=i;
                    }else{
                        zzz2=i;
                    }
                }
            }
            if(zzz1+1!=zzz2||zzz2>=13)
            return 1;
            int kkk1=0,kkk2=0;
            total=0;
            for(int i=1;i<=15;i++){
                if(tot[i]!=0&&tot[i]!=3){
                    if(!kkk1){
                        total=tot[i];
                        kkk1=i;
                    }else if(!kkk2){
                        if(tot[i]!=total)
                        return 1;
                        kkk2=i;
                    }else{
                        return 1;
                    }
                }
            }
            if(total==1&&!kkk2)
            return 1;
            if(total==2&&!kkk2){
                total=1;
                kkk2=kkk1;
            }
            if(paizu==0||(paizu==6&&fujia==total&&jishu<zzz1)){
                int kkk=0;
                for(int i=1;i<=sum1;i++){
                    while(i<=sum1&&kkk<3&&p1[i]==zzz1){
                        kkk++;
                        p1qipai(i);
                    }
                }
                kkk=0;
                for(int i=1;i<=sum1;i++){
                    while(i<=sum1&&kkk<3&&p1[i]==zzz2){
                        kkk++;
                        p1qipai(i);
                    }
                }
                if(total){
                    kkk=0;
                    for(int i=1;i<=sum1;i++){
                        while(i<=sum1&&kkk<total&&p1[i]==kkk1){
                            kkk++;
                            p1qipai(i);
                        }
                    }
                    kkk=0;
                    for(int i=1;i<=sum1;i++){
                        while(i<=sum1&&kkk<total&&p1[i]==kkk2){
                            kkk++;
                            p1qipai(i);
                        }
                    }
                }
                paizu=6;
                fujia=total;
                jishu=zzz1;
                huihe=1;
                return 0;
            }else{
                return 1;
            }
        }else{
            return 1;
        }
    }else if(total==2){     //对、连
        int zzz=0;
        total=0;
        for(int i=1;i<=15;i++){
            if(tot[i]==2){
                if(tot[i-1]==0){
                    if(zzz)
                    return 1;
                    zzz=i;
                }
                total++;
            }else if(tot[i]!=0){
                return 1;
            }
        }
        if(zzz+total-1>=13&&total>1)
        return 1;
        if((paizu==0&&(total>=3||total==1))||(paizu==2&&total==fujia&&jishu<zzz)){
            for(int o=zzz;o<=zzz+total-1;o++){
                int kkk=0;
                for(int i=1;i<=sum1;i++){
                    while(kkk<2&&i<=sum1&&p1[i]==o){
                        kkk++;
                        p1qipai(i);
                    }
                }
            }
            paizu=2;
            fujia=total;
            jishu=zzz;
            huihe=1;
            return 0;
        }else{
            return 1;
        }
    }else if(total==1){     //单、顺 
        int zzz=0;
        total=0;
        for(int i=1;i<=15;i++){
            if(tot[i]){
                if(tot[i-1]==0){
                    if(zzz)
                    return 1;
                    zzz=i;
                }
                total++;
            }
        }
        if(zzz+total-1>=13&&total>1)
        return 1;
        if((paizu==0&&(total==1||total>=5))||(paizu==1&&fujia==total&&jishu<zzz)){
            for(int o=zzz;o<=zzz+total-1;o++){
                int kkk=0;
                for(int i=1;i<=sum1;i++){
                    while(kkk<1&&i<=sum1&&p1[i]==o){
                        kkk++;
                        p1qipai(i);
                    }
                }
            }
            paizu=1;
            fujia=total;
            jishu=zzz;
            huihe=1;
            return 0;
        }
    }else{
        return 1;
    }
    return 1;
}
//<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<->-<-> 
void p2chupai(){
    printf("     P2:");
    int tot[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    for(int i=1;i<=sum2;i++){
        tot[p2[i]]++;
    }
    if(paizu==0){           //自由出牌 
        if(sum2==2&&tot[14]&&tot[15]){
            printf("XD\n");
            sum2=0;
            return;
        }
        if(sum2==4){
            for(int i=1;i<=15;i++){
                if(tot[i]){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        sum2=0;
                        return;
                    }
                    break;
                }
            }
        }
        if(sum2==2){
            for(int i=1;i<=15;i++){
                if(tot[i]){
                    if(tot[i]==2){
                        printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                        sum2=0;
                        return;
                    }
                    break;
                }
            }
        }
        if(sum2==1){
            for(int i=1;i<=15;i++){
                if(tot[i]){
                    printf("%c\n",yingshei_c[i]);
                    sum2=0;
                    return;
                }
            }
        }
        for(int i=1;i<15;i++){
            if(tot[i]>=3&&tot[i+1]>=3&&(tot[i]!=4||tot[i+1]!=4)){
                int kkk1=0,kkk2=0,z=0;
                for(int j=1;j<=13;j++){
                    if(tot[i]==1||tot[i]==2){
                        if(tot[i]==z||!z){
                            if(!kkk1){
                                kkk1=i;
                            }else{
                                kkk2=i;
                                break;
                            }
                            z=tot[i];
                        }
                    }
                }
                if(kkk1&&kkk2){
                    printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                    for(int j=1;j<=z;j++){
                        printf("%c",yingshei_c[kkk1]);
                    }
                    for(int j=1;j<=z;j++){
                        printf("%c",yingshei_c[kkk2]);
                    }
                    printf("\n");
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<3&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<3&&j<=sum2&&p2[j]==i+1){
                            k++;
                            p2qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<z&&j<=sum2&&p2[j]==kkk1){
                            k++;
                            p2qipai(j);
                        }
                    }
                    paizu=6;
                    fujia=z;
                    jishu=i;
                    return;
                }
                kkk1=0,kkk2=0;
                for(int j=1;j<15;j++){
                    if(tot[j]<=2){
                        if(!kkk1){
                            kkk1=j;
                        }else{
                            kkk2=j;
                            break;
                        }
                    }
                }
                if(kkk1&&kkk2){
                    printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                    printf("%c%c\n",yingshei_c[kkk1],yingshei_c[kkk2]);
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<3&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<3&&j<=sum2&&p2[j]==i+1){
                            k++;
                            p2qipai(j);
                        }
                    }
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==kkk1){
                            p2qipai(j);
                            break;
                        }
                    }
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==kkk2){
                            p2qipai(j);
                            break;
                        }
                    }
                    paizu=6;
                    jishu=i;
                    fujia=1;
                    return;
                }
                printf("%c%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                int k=0;
                for(int j=1;j<=sum2;j++){
                    while(k<3&&j<=sum2&&p2[j]==i){
                        k++;
                        p2qipai(j);
                    }
                }
                k=0;
                for(int j=1;j<=sum2;j++){
                    while(k<3&&j<=sum2&&p2[j]==i+1){
                        k++;
                        p2qipai(j);
                    }
                }
                paizu=6;
                fujia=0;
                jishu=i;
                return;
            }
        }
        int sum=0,total=0,z=0;
        for(int i=1;i<=15;i++){
            if(tot[i]==2){
                if(!total)
                z=i;
                total++;
            }else if(tot[i]==3){
                sum++;
                total++;
            }else{
                if(z/2>sum&&total>=3){
                    for(int j=z;j<=z+total-1;j++){
                        printf("%c%c",yingshei_c[j],yingshei_c[j]);
                        int k=0;
                        for(int o=1;o<=sum2;o++){
                            while(k<2&&o<=sum2&&p2[o]==j){
                                k++;
                                p2qipai(o);
                            }
                        }
                    }
                    printf("\n");
                    paizu=2;
                    fujia=total;
                    jishu=z;
                    return;
                }else{
                    total=0;
                    sum=0;
                }
            }
        } 
        for(int i=1;i<=15;i++){
            if(tot[i]==3){
                for(int j=1;j<=15;j++){
                    if(tot[j]==1){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j]);
                        int k=0;
                        for(int o=1;o<=sum2;o++){
                            while(k<3&&o<=sum2&&p2[o]==i){
                                k++;
                                p2qipai(o);
                            }
                        }
                        for(int o=1;o<=sum2;o++){
                            if(p2[o]==j){
                                p2qipai(o);
                                break;
                            }
                        }
                        paizu=3;
                        jishu=i;
                        fujia=1;
                        return;
                    }else if(tot[j]==2){
                        printf("%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j],yingshei_c[j]);
                        int k=0;
                        for(int o=1;o<=sum2;o++){
                            while(k<3&&o<sum2&&p2[o]==i){
                                k++;
                                p2qipai(o);
                            }
                        }
                        k=0;
                        for(int o=1;o<=sum2;o++){
                            while(k<2&&o<=sum2&&p2[o]==j){
                                k++;
                                p2qipai(o);
                            }
                        }
                        paizu=3;
                        jishu=i;
                        fujia=2;
                        return;
                    }
                }
            }
        }
        total=0,z=0;
        for(int i=1;i<=13;i++){
            if(tot[i]==1||tot[i]==2){
                if(!total)
                z=i;
                total++;
            }else{
                if(total>=5){
                    for(int j=z;j<=z+total-1;j++){
                        printf("%c",yingshei_c[j]);
                        for(int o=1;o<=sum2;o++){
                            if(p2[o]==j){
                                p2qipai(o);
                                break;
                            }
                        }
                    }
                    printf("\n");
                    paizu=1;
                    fujia=total;
                    jishu=z;
                    return;
                }else{
                    total=0;
                }
            }
        }
        if(((dizhu==1||dizhu==2)&&(sum1==3||sum1==1))||(dizhu==3&&sum1==2)){
            for(int i=1;i<=sum2;i++){
                if(tot[i]==2){
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<2&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(j);
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
            for(int i=1;i<=sum2;i++){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==i){
                            p2qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }else if(((dizhu==1||dizhu==2)&&sum1==2)||(dizhu==3&&(sum1==3||sum1==1))){
            for(int i=1;i<=sum2;i++){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==i){
                            p2qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
            for(int i=1;i<=sum2;i++){
                if(tot[i]==2){
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<2&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(j);
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }
        for(int i=1;i<=15;i++){
            if(tot[i]){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==i){
                            p2qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }else if(tot[i]==2){
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<2&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(k);
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }
        for(int i=1;i<=sum2;i++){
            if(tot[i]==3&&sum2==3){
                if(((dizhu==1||dizhu==2)&&sum1%2==0)){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==i){
                            p2qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }else{
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<2&&j<=sum2&&p2[j]==i){
                            p2qipai(j);
                            k++;
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }
        cout<<"BBQ2"<<endl;
        for(int i=1;i<=sum2;i++)
        printf("%c ",yingshei_c[p2[i]]);
        printf("\n");
        return;
    }else if(paizu==1){     //出单张或顺子 
        if(fujia==1){       //单张 
            for(int i=jishu+1;i<=15;i++){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==i){
                            p2qipai(j);
                            break;
                        }
                    }
                    jishu=i;
                    huihe=2;
                    return;
                }
            }
            if((dizhu==1||dizhu==2)&&sum1>=5&&huihe==1){
                printf("不出\n");
                return;
            }else if(sum1>2&&(dizhu==1||dizhu==2)&&huihe==1){
                for(int i=jishu+1;i<=15;i++){
                    if(tot[i]==2){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            if(p2[j]==i){
                                p2qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                for(int i=jishu+1;i<=15;i++){
                    if(tot[i]==3){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            if(p2[j]==i){
                                p2qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                for(int i=1;i<=15;i++){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            while(p2[j]==i&&j<=sum2){
                                p2qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
            }else if((dizhu==1||dizhu==2)&&huihe==1){
                for(int i=15;i>jishu;i--){
                    if(tot[i]==2){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            if(p2[j]==i){
                                p2qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                for(int i=15;i>jishu;i--){
                    if(tot[i]==3){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            if(p2[j]==i){
                                p2qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                for(int i=15;i>=1;i--){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            while(p2[j]==i&&j<=sum2){
                                p2qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
            }else{
                printf("不出\n");
                return;
            }
        }else{              //顺子
            int total=0,z=0;
            for(int i=jishu+1;i<13;i++){
                if(tot[i]&&tot[i]!=4){
                    if(!total)
                    z=i;
                    total++;
                    if(total>=fujia)
                    break;
                }else{
                    total=0;
                }
            }
            if(total>=fujia){
                for(int i=z;i<=z+fujia-1;i++){
                    printf("%c",yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        if(p2[j]==i){
                            p2qipai(j);
                            break;
                        }
                    }
                }
                printf("\n");
                jishu=z;
                huihe=2;
                return;
            }else if(sum1<=4){
                for(int i=1;i<=15;i++){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            while(p2[j]==i&&j<=sum2){
                                p2qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                if(tot[14]&&tot[15]){
                    printf("XD\n");
                    sum2-=2;
                    paizu=5;
                    huihe=2;
                    return;
                }
            }
        }
        printf("不出\n");
        return;
    }else if(paizu==2){     //出对或连对 
        if(fujia==1){       //对 
            if(sum1<=5&&(dizhu==1||dizhu==2)&&huihe==1){
                for(int i=15;i>jishu;i--){
                    if(tot[i]>=2){
                        int k=0;
                        printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            while(k<2&&j<=sum2&&p2[j]==i){
                                p2qipai(j);
                                k++;
                            }
                        }
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                if(sum1<=2&&(dizhu==1||dizhu==2)&&huihe==1)
                for(int i=1;i<=15;i++){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum2;j++){
                            while(j<=sum2&&p2[j]==i){
                                p2qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                printf("不出\n");
                return;
            }else{
                for(int i=jishu+1;i<=15;i++){
                    if(tot[i]==2){
                        printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                        int k=0;
                        for(int j=1;j<=sum2;j++){
                            while(j<=sum2&&k<2&&p2[j]==i){
                                k++;
                                p2qipai(j);
                            }
                        }
                        jishu=i;
                        huihe=2;
                        return;
                    }
                }
                printf("不出\n");
                return;
            }
        }else{              //连对 
            int total=0,z=0;
            for(int i=jishu+1;i<13;i++){
                if(tot[i]>=2&&tot[i]<=3){
                    if(!total)
                    z=i;
                    total++;
                    if(total>=fujia)
                    break;
                }else{
                    total=0;
                }
            }
            if(total>=fujia){
                for(int i=z;i<=z+fujia-1;i++){
                    printf("%c%c",yingshei_c[i],yingshei_c[i]);
                }
                printf("\n");
                for(int i=z;i<=z+fujia-1;i++){
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<2&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(j);
                        }
                    }
                }
                jishu=z;
                huihe=2;
                return;
            }else{
                if(sum1<=5&&(dizhu==1||dizhu==2)&&huihe==1){
                    for(int i=1;i<=15;i++){
                        if(tot[i]==4){
                            printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                            for(int j=1;j<=sum2;j++){
                                while(j<=sum2&&p2[j]==i){
                                    p2qipai(j);
                                }
                            }
                            paizu=4;
                            huihe=2;
                            jishu=i;
                            return;
                        }
                    }
                    if(tot[14]&&tot[15]){
                        sum2-=2;
                        printf("XD\n");
                        paizu=5;
                        huihe=2;
                        return;
                    }
                    printf("不出\n");
                    return;
                }else{
                    printf("不出\n");
                    return;
                }
            }
        }
    }else if(paizu==3){                 //三带 
        for(int i=jishu+1;i<=15;i++){
            if(tot[i]==3){
                if(fujia==1){           //带一 
                    for(int j=1;j<=15;j++){
                        if(tot[j]==1){
                            printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j]);
                            int k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<3&&o<=sum2&&p2[o]==i){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<1&&o<=sum2&&p2[o]==j){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=2;
                            return;
                        }
                    }
                    break;
                }else{                  //带二 
                    for(int j=1;j<=15;j++){
                        if(tot[j]==2){
                            printf("%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j],yingshei_c[j]);
                            int k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<3&&o<=sum2&&p2[o]==i){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<2&&o<=sum2&&p2[o]==j){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=2;
                            return;
                        }
                    }
                    break;
                }
                if(sum1<=6&&(dizhu==1||dizhu==2)&&huihe==1){
                    for(int i=1;i<=15;i++){
                        if(tot[i]==4){
                            printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                            for(int j=1;j<=sum2;j++){
                                while(j<=sum2&&p2[j]==i)
                                p2qipai(j);
                            }
                            paizu=4;
                            jishu=i;
                            huihe=2;
                            return;
                        }
                    }
                    if(tot[14]&&tot[15]){
                        printf("XD\n");
                        sum2-=2;
                        paizu=5;
                        huihe=2;
                        return;
                    }
                }
                printf("不出\n");
                return;
            }
        }
        printf("不出\n");
        return;
    }else if(paizu==4){         //炸 
        if(sum1<9){
            for(int i=jishu+1;i<=15;i++){
                if(tot[i]==4){
                    printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                    for(int j=1;j<=sum2;j++){
                        while(p2[j]==i&&j<=sum2){
                            p2qipai(j);
                        }
                    }
                    jishu=i;
                    huihe=2;
                    return;
                }
            }
            if(tot[14]&&tot[15]){
                printf("XD\n");
                paizu=5;
                huihe=2;
                sum2-=2;
                return;
            }
            printf("不出\n");
            return;
        }else{
            printf("不出\n");
            return;
        }
    }else if(paizu==5){         //双王 
        printf("不出\n");
        return;
    }else{                      //飞机 
        for(int i=jishu+1;i<15;i++){
            if(tot[i]>=3&&tot[i+1]>=3&&(tot[i]!=4||tot[i+1]!=4)){
                if(fujia==1){
                    int kkk1=0,kkk2=0;
                    for(int j=1;j<=15;j++){
                        if(tot[j]==1){
                            if(!kkk1){
                                kkk1=j;
                            }else{
                                kkk2=j;
                            }
                        }else if(tot[j]==2){
                            kkk1=kkk2=j;
                        }
                        if(kkk1&&kkk2){
                            printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                            printf("%c%c\n",yingshei_c[kkk1],yingshei_c[kkk2]);
                            int k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<3&&o<=sum2&&p2[o]==i){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<3&&o<=sum2&&p2[o]==i+1){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<1&&o<=sum2&&p2[o]==kkk1){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<1&&o<=sum2&&p2[o]==kkk2){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=2;
                            return;
                        }
                    }
                    if(sum1<=6&&(dizhu==1||dizhu==2)&&huihe==1){
                        for(int i=1;i<=15;i++){
                            if(tot[i]==4){
                                printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                                for(int j=1;j<=sum2;j++){
                                    while(j<sum2&&p2[j]==i)
                                    p2qipai(j);
                                }
                                paizu=4;
                                jishu=i;
                                huihe=2;
                                return;
                            }
                        }
                        if(tot[14]&&tot[15]){
                            printf("XD\n");
                            paizu=5;
                            huihe=2;
                            sum2-=2;
                            return;
                        }
                        printf("不出\n");
                        return;
                    }
                    printf("不出\n");
                    return;
                }else if(fujia==2){
                    int kkk1=0,kkk2=0;
                    for(int j=1;j<=15;j++){
                        if(tot[j]==2){
                            if(!kkk1){
                                kkk1=j;
                            }else{
                                kkk2=j;
                            }
                        }
                        if(kkk1&&kkk2){
                            printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                            printf("%c%c%c%c\n",yingshei_c[kkk1],yingshei_c[kkk1],yingshei_c[kkk2],yingshei_c[kkk2]);
                            int k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<3&&o<=sum2&&p2[o]==i){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<3&&o<=sum2&&p2[o]==i+1){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<2&&o<=sum2&&p2[o]==kkk1){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum2;o++){
                                while(k<2&&o<=sum2&&p2[o]==kkk2){
                                    k++;
                                    p2qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=2;
                            return;
                        }
                    }
                    if(sum1<=6&&(dizhu==1||dizhu==2)&&huihe==1){
                        for(int i=1;i<=15;i++){
                            if(tot[i]==4){
                                printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                                for(int j=1;j<=sum2;j++){
                                    while(j<sum2&&p2[j]==i)
                                    p2qipai(j);
                                }
                                paizu=4;
                                jishu=i;
                                huihe=2;
                                return;
                            }
                        }
                        if(tot[14]&&tot[15]){
                            printf("XD\n");
                            paizu=5;
                            sum2-=2;
                            huihe=2;
                            return;
                        }
                        printf("不出\n");
                        return;
                    }
                    printf("不出\n");
                    return;
                }else{
                    printf("%c%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                    int k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<3&&j<=sum2&&p2[j]==i){
                            k++;
                            p2qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum2;j++){
                        while(k<3&&j<=sum2&&p2[j]==i+1){
                            k++;
                            p2qipai(j);
                        }
                    }
                    jishu=i;
                    huihe=2;
                    return;
                }
                break;
            }
        }
        for(int i=1;i<=15;i++){
            if(tot[i]==4){
                printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                for(int j=1;j<=sum2;j++){
                    while(j<=sum2&&p2[j]==i)
                    p2qipai(j);
                }
                paizu=4;
                huihe=2;
                jishu=i;
                return;
            }
        }
        if(sum1<=6&&(dizhu==1||dizhu==2)&&huihe==1){
            if(tot[14]&&tot[15]){
                printf("XD\n");
                sum2-=2;
                paizu=5;
                huihe=2;
                return;
            }
        }
    }
    printf("不出\n");
    return;
}
void p3chupai(){
    printf("     p3:");
    int tot[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    for(int i=1;i<=sum3;i++){
        tot[p3[i]]++;
    }
    if(paizu==0){           //自由出牌 
        if(sum3==2&&tot[14]&&tot[15]){
            printf("XD\n");
            sum3=0;
            return;
        }
        if(sum3==4){
            for(int i=1;i<=15;i++){
                if(tot[i]){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        sum3=0;
                        return;
                    }
                    break;
                }
            }
        }
        if(sum3==2){
            for(int i=1;i<=15;i++){
                if(tot[i]){
                    if(tot[i]==2){
                        printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                        sum3=0;
                        return;
                    }
                    break;
                }
            }
        }
        if(sum3==1){
            for(int i=1;i<=15;i++){
                if(tot[i]){
                    printf("%c\n",yingshei_c[i]);
                    sum3=0;
                    return;
                }
            }
        }
        for(int i=1;i<15;i++){
            if(tot[i]>=3&&tot[i+1]>=3&&(tot[i]!=4||tot[i+1]!=4)){
                int kkk1=0,kkk2=0,z=0;
                for(int j=1;j<=13;j++){
                    if(tot[i]==1||tot[i]==2){
                        if(tot[i]==z||!z){
                            if(!kkk1){
                                kkk1=i;
                            }else{
                                kkk2=i;
                                break;
                            }
                            z=tot[i];
                        }
                    }
                }
                if(kkk1&&kkk2){
                    printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                    for(int j=1;j<=z;j++){
                        printf("%c",yingshei_c[kkk1]);
                    }
                    for(int j=1;j<=z;j++){
                        printf("%c",yingshei_c[kkk2]);
                    }
                    printf("\n");
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<3&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<3&&j<=sum3&&p3[j]==i+1){
                            k++;
                            p3qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<z&&j<=sum3&&p3[j]==kkk1){
                            k++;
                            p3qipai(j);
                        }
                    }
                    paizu=6;
                    fujia=z;
                    jishu=i;
                    return;
                }
                kkk1=0,kkk2=0;
                for(int j=1;j<15;j++){
                    if(tot[j]<=2){
                        if(!kkk1){
                            kkk1=j;
                        }else{
                            kkk2=j;
                            break;
                        }
                    }
                }
                if(kkk1&&kkk2){
                    printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                    printf("%c%c\n",yingshei_c[kkk1],yingshei_c[kkk2]);
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<3&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<3&&j<=sum3&&p3[j]==i+1){
                            k++;
                            p3qipai(j);
                        }
                    }
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==kkk1){
                            p3qipai(j);
                            break;
                        }
                    }
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==kkk2){
                            p3qipai(j);
                            break;
                        }
                    }
                    paizu=6;
                    jishu=i;
                    fujia=1;
                    return;
                }
                printf("%c%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                int k=0;
                for(int j=1;j<=sum3;j++){
                    while(k<3&&j<=sum3&&p3[j]==i){
                        k++;
                        p3qipai(j);
                    }
                }
                k=0;
                for(int j=1;j<=sum3;j++){
                    while(k<3&&j<=sum3&&p3[j]==i+1){
                        k++;
                        p3qipai(j);
                    }
                }
                paizu=6;
                fujia=0;
                jishu=i;
                return;
            }
        }
        int sum=0,total=0,z=0;
        for(int i=1;i<=15;i++){
            if(tot[i]==2){
                if(!total)
                z=i;
                total++;
            }else if(tot[i]==3){
                sum++;
                total++;
            }else{
                if(z/2>sum&&total>=3){
                    for(int j=z;j<=z+total-1;j++){
                        printf("%c%c",yingshei_c[j],yingshei_c[j]);
                        int k=0;
                        for(int o=1;o<=sum3;o++){
                            while(k<2&&o<=sum3&&p3[o]==j){
                                k++;
                                p3qipai(o);
                            }
                        }
                    }
                    printf("\n");
                    paizu=2;
                    fujia=total;
                    jishu=z;
                    return;
                }else{
                    total=0;
                    sum=0;
                }
            }
        } 
        for(int i=1;i<=15;i++){
            if(tot[i]==3){
                for(int j=1;j<=15;j++){
                    if(tot[j]==1){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j]);
                        int k=0;
                        for(int o=1;o<=sum3;o++){
                            while(k<3&&o<=sum3&&p3[o]==i){
                                k++;
                                p3qipai(o);
                            }
                        }
                        for(int o=1;o<=sum3;o++){
                            if(p3[o]==j){
                                p3qipai(o);
                                break;
                            }
                        }
                        paizu=3;
                        jishu=i;
                        fujia=1;
                        return;
                    }else if(tot[j]==2){
                        printf("%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j],yingshei_c[j]);
                        int k=0;
                        for(int o=1;o<=sum3;o++){
                            while(k<3&&o<sum3&&p3[o]==i){
                                k++;
                                p3qipai(o);
                            }
                        }
                        k=0;
                        for(int o=1;o<=sum3;o++){
                            while(k<2&&o<=sum3&&p3[o]==j){
                                k++;
                                p3qipai(o);
                            }
                        }
                        paizu=3;
                        jishu=i;
                        fujia=2;
                        return;
                    }
                }
            }
        }
        total=0,z=0;
        for(int i=1;i<=13;i++){
            if(tot[i]==1||tot[i]==2){
                if(!total)
                z=i;
                total++;
            }else{
                if(total>=5){
                    for(int j=z;j<=z+total-1;j++){
                        printf("%c",yingshei_c[j]);
                        for(int o=1;o<=sum3;o++){
                            if(p3[o]==j){
                                p3qipai(o);
                                break;
                            }
                        }
                    }
                    printf("\n");
                    paizu=1;
                    fujia=total;
                    jishu=z;
                    return;
                }else{
                    total=0;
                }
            }
        }
        if(((dizhu==1||dizhu==3)&&(sum1==3||sum1==1))||(dizhu==3&&sum1==2)){
            for(int i=1;i<=sum3;i++){
                if(tot[i]==2){
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<2&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(j);
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
            for(int i=1;i<=sum3;i++){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==i){
                            p3qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }else if(((dizhu==1||dizhu==3)&&sum1==2)||(dizhu==3&&(sum1==3||sum1==1))){
            for(int i=1;i<=sum3;i++){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==i){
                            p3qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
            for(int i=1;i<=sum3;i++){
                if(tot[i]==2){
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<2&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(j);
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }
        for(int i=1;i<=15;i++){
            if(tot[i]){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==i){
                            p3qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }else if(tot[i]==2){
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<2&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(k);
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }
        for(int i=1;i<=15;i++){
            if(tot[i]==3&&sum3==3){
                if(((dizhu==1||dizhu==2)&&sum1%2==0)){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==i){
                            p3qipai(j);
                            break;
                        }
                    }
                    paizu=1;
                    fujia=1;
                    jishu=i;
                    return;
                }else{
                    printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<2&&j<=sum3&&p3[j]==i){
                            p3qipai(j);
                            k++;
                        }
                    }
                    paizu=2;
                    fujia=1;
                    jishu=i;
                    return;
                }
            }
        }
        cout<<"BBQ3"<<endl;
        for(int i=1;i<=sum3;i++)
        printf("%c ",yingshei_c[p3[i]]);
        printf("\n");
        return;
    }else if(paizu==1){     //出单张或顺子 
        if(fujia==1){       //单张 
            for(int i=jishu+1;i<=15;i++){
                if(tot[i]==1){
                    printf("%c\n",yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==i){
                            p3qipai(j);
                            break;
                        }
                    }
                    jishu=i;
                    huihe=3;
                    return;
                }
            }
            if((dizhu==1||dizhu==3)&&sum1>=5&&huihe==1){
                printf("不出\n");
                return;
            }else if(sum1>2&&(dizhu==1||dizhu==3)&&huihe==1){
                for(int i=jishu+1;i<=15;i++){
                    if(tot[i]==2){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            if(p3[j]==i){
                                p3qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                for(int i=jishu+1;i<=15;i++){
                    if(tot[i]==3){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            if(p3[j]==i){
                                p3qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                for(int i=1;i<=15;i++){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            while(p3[j]==i&&j<=sum3){
                                p3qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
            }else if((dizhu==1||dizhu==3)&&huihe==1){
                for(int i=15;i>jishu;i--){
                    if(tot[i]==2){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            if(p3[j]==i){
                                p3qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                for(int i=15;i>jishu;i--){
                    if(tot[i]==3){
                        printf("%c\n",yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            if(p3[j]==i){
                                p3qipai(j);
                                break;
                            }
                        }
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                for(int i=15;i>=1;i--){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            while(p3[j]==i&&j<=sum3){
                                p3qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
            }else{
                printf("不出\n");
                return;
            }
        }else{              //顺子 
            int total=0,z=0;
            for(int i=jishu+1;i<13;i++){
                if(tot[i]&&tot[i]!=4){
                    if(!total)
                    z=i;
                    total++;
                    if(total>=fujia)
                    break;
                }else{
                    total=0;
                }
            }
            if(total>=fujia){
                for(int i=z;i<=z+fujia-1;i++){
                    printf("%c",yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        if(p3[j]==i){
                            p3qipai(j);
                            break;
                        }
                    }
                }
                printf("\n");
                jishu=z;
                huihe=3;
                return;
            }else if(sum1<=4){
                for(int i=1;i<=15;i++){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            while(p3[j]==i&&j<=sum3){
                                p3qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                if(tot[14]&&tot[15]){
                    printf("XD\n");
                    sum3-=2;
                    paizu=5;
                    huihe=3;
                    return;
                }
            }
        }
        printf("不出\n");
        return;
    }else if(paizu==2){     //出对或连对 
        if(fujia==1){       //对 
            if(sum1<=5&&(dizhu==1||dizhu==3)&&huihe==1){
                for(int i=15;i>jishu;i--){
                    if(tot[i]>=2){
                        int k=0;
                        printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            while(k<2&&j<=sum3&&p3[j]==i){
                                p3qipai(j);
                                k++;
                            }
                        }
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                if(sum1<=2&&(dizhu==1||dizhu==3)&&huihe==1)
                for(int i=1;i<=15;i++){
                    if(tot[i]==4){
                        printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                        for(int j=1;j<=sum3;j++){
                            while(j<=sum3&&p3[j]==i){
                                p3qipai(j);
                            }
                        }
                        paizu=4;
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                printf("不出\n");
                return;
            }else{
                for(int i=jishu+1;i<=15;i++){
                    if(tot[i]==2){
                        printf("%c%c\n",yingshei_c[i],yingshei_c[i]);
                        int k=0;
                        for(int j=1;j<=sum3;j++){
                            while(j<=sum3&&k<2&&p3[j]==i){
                                k++;
                                p3qipai(j);
                            }
                        }
                        jishu=i;
                        huihe=3;
                        return;
                    }
                }
                printf("不出\n");
                return;
            }
        }else{              //连对 
            int total=0,z=0;
            for(int i=jishu+1;i<13;i++){
                if(tot[i]>=2&&tot[i]<=3){
                    if(!total)
                    z=i;
                    total++;
                    if(total>=fujia)
                    break;
                }else{
                    total=0;
                }
            }
            if(total>=fujia){
                for(int i=z;i<=z+fujia-1;i++){
                    printf("%c%c",yingshei_c[i],yingshei_c[i]);
                }
                printf("\n");
                for(int i=z;i<=z+fujia-1;i++){
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<2&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(j);
                        }
                    }
                }
                jishu=z;
                huihe=3;
                return;
            }else{
                if(sum1<=5&&(dizhu==1||dizhu==3)&&huihe==1){
                    for(int i=1;i<=15;i++){
                        if(tot[i]==4){
                            printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                            for(int j=1;j<=sum3;j++){
                                while(j<=sum3&&p3[j]==i){
                                    p3qipai(j);
                                }
                            }
                            paizu=4;
                            huihe=3;
                            jishu=i;
                            return;
                        }
                    }
                    if(tot[14]&&tot[15]){
                        sum3-=2;
                        printf("XD\n");
                        paizu=5;
                        huihe=3;
                        return;
                    }
                    printf("不出\n");
                    return;
                }else{
                    printf("不出\n");
                    return;
                }
            }
        }
    }else if(paizu==3){                 //三带 
        for(int i=jishu+1;i<=15;i++){
            if(tot[i]==3){
                if(fujia==1){           //带一 
                    for(int j=1;j<=15;j++){
                        if(tot[j]==1){
                            printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j]);
                            int k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<3&&o<=sum3&&p3[o]==i){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<1&&o<=sum3&&p3[o]==j){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=3;
                            return;
                        }
                    }
                    break;
                }else{                  //带二 
                    for(int j=1;j<=15;j++){
                        if(tot[j]==2){
                            printf("%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[j],yingshei_c[j]);
                            int k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<3&&o<=sum3&&p3[o]==i){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<2&&o<=sum3&&p3[o]==j){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=3;
                            return;
                        }
                    }
                    break;
                }
                if(sum1<=6&&(dizhu==1||dizhu==3)&&huihe==1){
                    for(int i=1;i<=15;i++){
                        if(tot[i]==4){
                            printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                            for(int j=1;j<=sum3;j++){
                                while(j<=sum3&&p3[j]==i)
                                p3qipai(j);
                            }
                            paizu=4;
                            jishu=i;
                            huihe=3;
                            return;
                        }
                    }
                    if(tot[14]&&tot[15]){
                        printf("XD\n");
                        paizu=5;
                        sum3-=2;
                        huihe=3;
                        return;
                    }
                }
                printf("不出\n");
                return;
            }
        }
        printf("不出\n");
        return;
    }else if(paizu==4){         //炸 
        if(sum1<9){
            for(int i=jishu+1;i<=15;i++){
                if(tot[i]==4){
                    printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                    for(int j=1;j<=sum3;j++){
                        while(p3[j]==i&&j<=sum3){
                            p3qipai(j);
                        }
                    }
                    jishu=i;
                    huihe=3;
                    return;
                }
            }
            if(tot[14]&&tot[15]){
                printf("XD\n");
                paizu=5;
                huihe=3;
                sum3-=2;
                return;
            }
            printf("不出\n");
            return;
        }else{
            printf("不出\n");
            return;
        }
    }else if(paizu==5){         //双王 
        printf("不出\n");
        return;
    }else{                      //飞机 
        for(int i=jishu+1;i<15;i++){
            if(tot[i]>=3&&tot[i+1]>=3&&(tot[i]!=4||tot[i+1]!=4)){
                if(fujia==1){
                    int kkk1=0,kkk2=0;
                    for(int j=1;j<=15;j++){
                        if(tot[j]==1){
                            if(!kkk1){
                                kkk1=j;
                            }else{
                                kkk2=j;
                            }
                        }else if(tot[j]==2){
                            kkk1=kkk2=j;
                        }
                        if(kkk1&&kkk2){
                            printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                            printf("%c%c\n",yingshei_c[kkk1],yingshei_c[kkk2]);
                            int k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<3&&o<=sum3&&p3[o]==i){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<3&&o<=sum3&&p3[o]==i+1){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<1&&o<=sum3&&p3[o]==kkk1){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<1&&o<=sum3&&p3[o]==kkk2){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=3;
                            return;
                        }
                    }
                    if(sum1<=6&&(dizhu==1||dizhu==3)&&huihe==1){
                        for(int i=1;i<=15;i++){
                            if(tot[i]==4){
                                printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                                for(int j=1;j<=sum3;j++){
                                    while(j<sum3&&p3[j]==i)
                                    p3qipai(j);
                                }
                                paizu=4;
                                jishu=i;
                                huihe=3;
                                return;
                            }
                        }
                        if(tot[14]&&tot[15]){
                            printf("XD\n");
                            paizu=5;
                            sum3-=2;
                            huihe=3;
                            return;
                        }
                        printf("不出\n");
                        return;
                    }
                    printf("不出\n");
                    return;
                }else if(fujia==2){
                    int kkk1=0,kkk2=0;
                    for(int j=1;j<=15;j++){
                        if(tot[j]==2){
                            if(!kkk1){
                                kkk1=j;
                            }else{
                                kkk2=j;
                            }
                        }
                        if(kkk1&&kkk2){
                            printf("%c%c%c%c%c%c",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                            printf("%c%c%c%c\n",yingshei_c[kkk1],yingshei_c[kkk1],yingshei_c[kkk2],yingshei_c[kkk2]);
                            int k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<3&&o<=sum3&&p3[o]==i){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<3&&o<=sum3&&p3[o]==i+1){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<2&&o<=sum3&&p3[o]==kkk1){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            k=0;
                            for(int o=1;o<=sum3;o++){
                                while(k<2&&o<=sum3&&p3[o]==kkk2){
                                    k++;
                                    p3qipai(o);
                                }
                            }
                            jishu=i;
                            huihe=3;
                            return;
                        }
                    }
                    if(sum1<=6&&(dizhu==1||dizhu==3)&&huihe==1){
                        for(int i=1;i<=15;i++){
                            if(tot[i]==4){
                                printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                                for(int j=1;j<=sum3;j++){
                                    while(j<sum3&&p3[j]==i)
                                    p3qipai(j);
                                }
                                paizu=4;
                                jishu=i;
                                huihe=3;
                                return;
                            }
                        }
                        if(tot[14]&&tot[15]){
                            printf("XD\n");
                            paizu=5;
                            huihe=3;
                            sum3-=2;
                            return;
                        }
                        printf("不出\n");
                        return;
                    }
                    printf("不出\n");
                    return;
                }else{
                    printf("%c%c%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i+1],yingshei_c[i+1],yingshei_c[i+1]);
                    int k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<3&&j<=sum3&&p3[j]==i){
                            k++;
                            p3qipai(j);
                        }
                    }
                    k=0;
                    for(int j=1;j<=sum3;j++){
                        while(k<3&&j<=sum3&&p3[j]==i+1){
                            k++;
                            p3qipai(j);
                        }
                    }
                    jishu=i;
                    huihe=3;
                    return;
                }
                break;
            }
        }
        for(int i=1;i<=15;i++){
            if(tot[i]==4){
                printf("%c%c%c%c\n",yingshei_c[i],yingshei_c[i],yingshei_c[i],yingshei_c[i]);
                for(int j=1;j<=sum3;j++){
                    while(j<=sum3&&p3[j]==i)
                    p3qipai(j);
                }
                paizu=4;
                huihe=3;
                jishu=i;
                return;
            }
        }
        if(sum1<=6&&(dizhu==1||dizhu==3)&&huihe==1){
            if(tot[14]&&tot[15]){
                printf("XD\n");
                sum3-=2;
                paizu=5;
                huihe=3;
                return;
            }
        }
    }
    printf("不出\n");
    return;
}
void p1qipai(int k){            //p1弃第k张牌 
    for(int i=k+1;i<=sum1;i++){
        p1[i-1]=p1[i];
    }
    sum1--;
    return;
}
void p2qipai(int k){            //p2弃第k张牌
    for(int i=k+1;i<=sum2;i++){
        p2[i-1]=p2[i];
    }
    sum2--;
    return;
}
void p3qipai(int k){            //p3弃第k张牌
    for(int i=k+1;i<=sum3;i++){
        p3[i-1]=p3[i];
    }
    sum3--;
    return;
}