rendered paste body// multicombinations.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
void print_card(int num){
switch(num){
case 0: cout << "A"; break;
case 1: cout << "2"; break;
case 2: cout << "3"; break;
case 3: cout << "4"; break;
case 4: cout << "5"; break;
case 5: cout << "6"; break;
case 6: cout << "7"; break;
case 7: cout << "8"; break;
case 8: cout << "9"; break;
case 9: cout << "T"; break;
case 10: cout << "J"; break;
case 11: cout << "Q"; break;
case 12: cout << "K"; break;
}
}
int m[13] = {3,2,4,3,4,4,4,4,4,4,4,4,4};
int q[13];
int j, x, t, i, k;
int count = 0;
int _tmain(int argc, _TCHAR* argv[])
{
t = 4;
Q1:
for(j = 0; j < 13; j++) q[j] = 0;
x = t;
Q2:
j = 0;
while(x > m[j]){
q[j] = m[j];
x -= m[j];
j++;
}
q[j] = x;
Q3:
count++;
for(i = 0; i < 12; i++) for(k = 0; k < q[i]; k++) print_card(i);
//for(i = 0; i < 12; i++) cout << q[i] << " ";
cout << endl;
Q4:
if(j == 0){
x = q[0] - 1;
j = 1;
} else
if(q[0] == 0){
x = q[j] - 1;
q[j] = 0;
j++;
} else
goto Q7;
Q5:
if(j > 12){
cout << count << endl;
system("pause");
return 0;
} else
if(q[j] == m[j]){
x += m[j];
q[j] = 0;
j++;
goto Q5;
}
Q6:
q[j] += 1;
if(x == 0){
q[0] = 0;
goto Q3;
} else
goto Q2;
Q7:
while(q[j] == m[j]){
j++;
if(j > 12) goto Q5;
}
q[j] += 1;
j -= 1;
q[j] -= 1;
if(q[0] == 0) j = 1;
goto Q3;
}