fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. char get_next(char player){
  6. switch(player){
  7. case 'N':
  8. return 'E';
  9. case 'E':
  10. return 'S';
  11. case 'S':
  12. return 'W';
  13. case 'W':
  14. return 'N';
  15. }
  16. }
  17.  
  18. int main(){
  19. char dealer;
  20. map<string,int> card_to_index = {{ "C2" ,0 }, { "C3" ,1 }, { "C4" ,2 }, { "C5" ,3 }, { "C6" ,4 }, { "C7" ,5 }, { "C8" ,6 }, { "C9" ,7 }, { "CT" ,8 }, { "CJ" ,9 }, { "CQ" ,10 }, { "CK" ,11 }, { "CA" ,12 }, { "D2" ,13 }, { "D3" ,14 }, { "D4" ,15 }, { "D5" ,16 }, { "D6" ,17 }, { "D7" ,18 }, { "D8" ,19 }, { "D9" ,20 }, { "DT" ,21 }, { "DJ" ,22 }, { "DQ" ,23 }, { "DK" ,24 }, { "DA" ,25 }, { "S2" ,26 }, { "S3" ,27 }, { "S4" ,28 }, { "S5" ,29 }, { "S6" ,30 }, { "S7" ,31 }, { "S8" ,32 }, { "S9" ,33 }, { "ST" ,34 }, { "SJ" ,35 }, { "SQ" ,36 }, { "SK" ,37 }, { "SA" ,38 }, { "H2" ,39 }, { "H3" ,40 }, { "H4" ,41 }, { "H5" ,42 }, { "H6" ,43 }, { "H7" ,44 }, { "H8" ,45 }, { "H9" ,46 }, { "HT" ,47 }, { "HJ" ,48 }, { "HQ" ,49 }, { "HK" ,50 }, { "HA" ,51 }};
  21. map<int,string> index_to_card = {{ 0, "C2" }, { 1, "C3" }, { 2, "C4" }, { 3, "C5" }, { 4, "C6" }, { 5, "C7" }, { 6, "C8" }, { 7, "C9" }, { 8, "CT" }, { 9, "CJ" }, { 10, "CQ" }, { 11, "CK" }, { 12, "CA" }, { 13, "D2" }, { 14, "D3" }, { 15, "D4" }, { 16, "D5" }, { 17, "D6" }, { 18, "D7" }, { 19, "D8" }, { 20, "D9" }, { 21, "DT" }, { 22, "DJ" }, { 23, "DQ" }, { 24, "DK" }, { 25, "DA" }, { 26, "S2" }, { 27, "S3" }, { 28, "S4" }, { 29, "S5" }, { 30, "S6" }, { 31, "S7" }, { 32, "S8" }, { 33, "S9" }, { 34, "ST" }, { 35, "SJ" }, { 36, "SQ" }, { 37, "SK" }, { 38, "SA" }, { 39, "H2" }, { 40, "H3" }, { 41, "H4" }, { 42, "H5" }, { 43, "H6" }, { 44, "H7" }, { 45, "H8" }, { 46, "H9" }, { 47, "HT" }, { 48, "HJ" }, { 49, "HQ" }, { 50, "HK" }, { 51, "HA" }};
  22. vector<int> N;
  23. vector<int> E;
  24. vector<int> S;
  25. vector<int> W;
  26. string line, card;
  27. char player;
  28. while(cin >> dealer){
  29. if(dealer == '#') break;
  30. player = dealer;
  31. for (int i = 0; i < 2; ++i){
  32. cin >> line;
  33. for(int j = 0; j < 52; j+=2){
  34. card = line.substr(j, 2);
  35. player = get_next(player);
  36. switch(player){
  37. case 'N':
  38. N.push_back( card_to_index[card]);
  39. break;
  40. case 'E':
  41. E.push_back( card_to_index[card]);
  42. break;
  43. case 'S':
  44. S.push_back( card_to_index[card]);
  45. break;
  46. case 'W':
  47. W.push_back( card_to_index[card]);
  48. break;
  49. }
  50.  
  51. }
  52. }
  53.  
  54. sort(N.begin(), N.end());
  55. sort(E.begin(), E.end());
  56. sort(S.begin(), S.end());
  57. sort(W.begin(), W.end());
  58.  
  59. cout << "S: ";
  60. for (int i = 0; i < S.size(); ++i)
  61. {
  62. cout << index_to_card[S[i]];
  63. if( i + 1 != S.size()){
  64. cout << ' ';
  65. }
  66. }
  67. cout << endl;
  68. cout << "W: ";
  69. for (int i = 0; i < W.size(); ++i)
  70. {
  71. cout << index_to_card[W[i]];
  72. if( i + 1 != W.size()){
  73. cout << ' ';
  74. }
  75. };
  76. cout << endl;
  77. cout << "N: ";
  78. for (int i = 0; i < N.size(); ++i)
  79. {
  80. cout << index_to_card[N[i]];
  81. if( i + 1 != N.size()){
  82. cout << ' ';
  83. }
  84. }
  85. cout << endl;
  86. cout << "E: ";
  87. for (int i = 0; i < E.size(); ++i)
  88. {
  89. cout << index_to_card[E[i]];
  90. if( i + 1 != E.size()){
  91. cout << ' ';
  92. }
  93. }
  94. cout << endl;
  95. }
  96. }
  97.  
Success #stdin #stdout 0s 4328KB
stdin
N
CQDTC4D8S7HTDAH7D2S3D6C6S6D9S4SAD7H2CKH5D3CTS8C9H3C3
DQS9SQDJH8HAS2SKD4H4S5C7SJC8DKC5C2CAHQCJSTH6HKH9D5HJ
S
CQDTC4D8S7HTDAH7D2S3D6C6S6D9S4SAD7H2CKH5D3CTS8C9H3C3
DQS9SQDJH8HAS2SKD4H4S5C7SJC8DKC5C2CAHQCJSTH6HKH9D5HJ
#
stdout
S: C3 C5 C7 CT CJ D9 DT DJ S3 SK H2 H9 HT
W: C2 C4 CK D4 D5 D6 DQ DA S4 S8 ST SJ H8
N: C6 C8 C9 CA D8 S9 SA H4 H5 H6 H7 HJ HA
E: CQ D2 D3 D7 DK S2 S5 S6 S7 SQ H3 HQ HK
S: C3 C5 C6 C7 C8 C9 CT CJ CA D8 D9 DT DJ S3 S9 SK SA H2 H4 H5 H6 H7 H9 HT HJ HA
W: C2 C4 CQ CK D2 D3 D4 D5 D6 D7 DQ DK DA S2 S4 S5 S6 S7 S8 ST SJ SQ H3 H8 HQ HK
N: C3 C5 C6 C7 C8 C9 CT CJ CA D8 D9 DT DJ S3 S9 SK SA H2 H4 H5 H6 H7 H9 HT HJ HA
E: C2 C4 CQ CK D2 D3 D4 D5 D6 D7 DQ DK DA S2 S4 S5 S6 S7 S8 ST SJ SQ H3 H8 HQ HK