/* File: 10205.cpp Author: ACboy Date: 2010-4-20 Result: 1A Descripition: UVa 10205 Stack 'em Up */ #include <iostream> #include <string> #include <map> using namespace std; int data[110][60]; int result[53]; int temp[53]; int main() { int n; #ifndef ONLINE_JUDGE freopen("10205.txt", "r", stdin); #endif cin >> n; while (n--) { int k; cin >> k; int i, j; for (i = 1; i <= k; i++) { for (j = 1; j <= 52; j++) { cin >> data[i][j]; } } getchar(); string input; for (i = 1; i <= 52; i++) { result[i] = i; } while (getline(cin, input)) { if (input == "") break; int t = atoi(input.c_str()); for (i = 1; i <= 52; i++) { temp[i] = result[data[t][i]]; } memcpy(result, temp, sizeof(result)); input = ""; } for (i = 1; i <= 52; i++) { int row, column; row = (result[i] - 1) / 13; column = (result[i] - 1) % 13; if (column >= 0 && column <= 8) { cout << column + 2; } else { switch (column) { case 9: cout << "Jack"; break; case 10: cout << "Queen"; break; case 11: cout << "King"; break; case 12: cout << "Ace"; break; } } cout << " of "; switch (row) { case 0: cout << "Clubs" << endl; break; case 1: cout << "Diamonds" << endl; break; case 2: cout << "Hearts" << endl; break; case 3: cout << "Spades" << endl; break; } } if (n != 0) { cout << endl; } } return 0; }