#include #include using namespace std; int main(){ int N; while (scanf("%d", &N) != -1){ getchar(); // remove first space // main test case bool visited[N]; for (int i=0; i= '2' && number <= '9') number = number - '0' - 1; // map 2-9 to 1-8 else if (number == 'A') number = 0; // map A to 0 else if (number == 'X') number = 9; else if (number == 'J') number = 10; else if (number == 'Q') number = 11; else if (number == 'K') number = 12; int letter = getchar(); if (letter == 'C') letter = 0; if (letter == 'D') letter = 1; if (letter == 'H') letter = 2; if (letter == 'S') letter = 3; getchar(); // remove next space/newline karty[number][letter] = i; // save index of card } // create incidence matrix //printf("%d\n", karty[1][1]); // columns for (int j=0; j<4; ++j) for (int i=0; i<13; ++i) { if (karty[i][j] != -1){ for (int k=i+1; k<13; ++k) if (karty[k][j] != -1) { // update incidence matrix incid[karty[k][j]][karty[i][j]] = 1; incid[karty[i][j]][karty[k][j]] = 1; } } } // lines for (int i=0; i<13; ++i) for (int j=0; j<4; ++j) { if (karty[i][j] != -1){ for (int k=j+1; k<4; ++k) if (karty[i][k] != -1) { // update incidence matrix incid[karty[i][j]][karty[i][k]] = 1; incid[karty[i][k]][karty[i][j]] = 1; } } } // print incidence matrix /* for (int i=0; i q; q.push(0); // init with first node while (!q.empty()){ int current = q.front(); q.pop(); visited[current] = true; for (int j=0; j