简单题。
#include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<queue> #include<stack> #include<string> #include<algorithm> using namespace std; struct X { char c; int num; }s[60]; int ans[60],p[60],tmp[60]; int n; void init() { for(int i=1;i<=13;i++) s[i].c='S',s[i].num=i; for(int i=14;i<=26;i++) s[i].c='H',s[i].num=i-13; for(int i=27;i<=39;i++) s[i].c='C',s[i].num=i-26; for(int i=40;i<=52;i++) s[i].c='D',s[i].num=i-39; s[53].c='J'; s[53].num=1; s[54].c='J'; s[54].num=2; } int main() { init(); for(int i=1;i<=54;i++) ans[i]=i; int k; scanf("%d",&k); for(int i=1;i<=54;i++) scanf("%d",&p[i]); for(int i=1;i<=k;i++) { for(int j=1;j<=54;j++) tmp[p[j]]=ans[j]; for(int j=1;j<=54;j++) ans[j]=tmp[j]; } for(int i=1;i<=54;i++) { printf("%c%d",s[ans[i]].c,s[ans[i]].num); if(i<54) printf(" "); else printf(" "); } return 0; }