解法一:模拟
#include <bits/stdc++.h>
using namespace std;
const int N = 54;
string cardsA[N + 1];
string cardsB[N + 1];
int pos[N + 1];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
for (int i = 1; i <= N; ++i) {
int tmp = (i - 1) / 13;
switch (tmp) {
case 0:
cardsA[i] = "S" + to_string(i);
break;
case 1:
cardsA[i] = "H" + to_string(i - 13);
break;
case 2:
cardsA[i] = "C" + to_string(i - 26);
break;
case 3:
cardsA[i] = "D" + to_string(i - 39);
break;
case 4:
cardsA[i] = "J" + to_string(i - 52);
}
}
int K;
cin >> K;
for (int i = 1; i <= N; ++i) {
cin >> pos[i];
}
while (K-- > 0) {
for (int i = 1; i <= N; ++i) {
cardsB[pos[i]] = cardsA[i];
}
for (int i = 1; i <= N; ++i) {
cardsA[i] = cardsB[i];
}
}
cout << cardsA[1];
for (int i = 2; i <= N; ++i) {
cout << " " << cardsA[i];
}
cout << "\n";
}