Source code for submission s635

Go to diff to previous submission

fs.cpp

  1. #include <iostream>
  2.  
  3. #include <string>
  4. #include <sstream>
  5. #include <vector>
  6. #include <map>
  7. #include <algorithm>
  8.  
  9. using namespace std;
  10.  
  11. string coder[128];
  12. map<string, char> decoder;
  13.  
  14. int main()
  15. {
  16. coder[(int)'A'] = ".-";
  17. coder[(int)'B'] = "-...";
  18. coder[(int)'C'] = "-.-.";
  19. coder[(int)'D'] = "-..";
  20. coder[(int)'E'] = ".";
  21. coder[(int)'F'] = "..-.";
  22. coder[(int)'G'] = "--.";
  23. coder[(int)'H'] = "....";
  24. coder[(int)'I'] = "..";
  25. coder[(int)'J'] = ".---";
  26. coder[(int)'K'] = "-.-";
  27. coder[(int)'L'] = ".-..";
  28. coder[(int)'M'] = "--";
  29. coder[(int)'N'] = "-.";
  30. coder[(int)'O'] = "---";
  31. coder[(int)'P'] = ".--.";
  32. coder[(int)'Q'] = "--.-";
  33. coder[(int)'R'] = ".-.";
  34. coder[(int)'S'] = "...";
  35. coder[(int)'T'] = "-";
  36. coder[(int)'U'] = "..-";
  37. coder[(int)'V'] = "...-";
  38. coder[(int)'W'] = ".--";
  39. coder[(int)'X'] = "-..-";
  40. coder[(int)'Y'] = "-.--";
  41. coder[(int)'Z'] = "--..";
  42. coder[(int)'_'] = "..--";
  43. coder[(int)','] = ".-.-";
  44. coder[(int)'.'] = "---.";
  45. coder[(int)'?'] = "----";
  46.  
  47. decoder[".-"] = 'A';
  48. decoder["-..."] = 'B';
  49. decoder["-.-."] = 'C';
  50. decoder["-.."] = 'D';
  51. decoder["."] = 'E';
  52. decoder["..-."] = 'F';
  53. decoder["--."] = 'G';
  54. decoder["...."] = 'H';
  55. decoder[".."] = 'I';
  56. decoder[".---"] = 'J';
  57. decoder["-.-"] = 'K';
  58. decoder[".-.."] = 'L';
  59. decoder["--"] = 'M';
  60. decoder["-."] = 'N';
  61. decoder["---"] = 'O';
  62. decoder[".--."] = 'P';
  63. decoder["--.-"] = 'Q';
  64. decoder[".-."] = 'R';
  65. decoder["..."] = 'S';
  66. decoder["-"] = 'T';
  67. decoder["..-"] = 'U';
  68. decoder["...-"] = 'V';
  69. decoder[".--"] = 'W';
  70. decoder["-..-"] = 'X';
  71. decoder["-.--"] = 'Y';
  72. decoder["--.."] = 'Z';
  73. decoder["..--"] = '_';
  74. decoder[".-.-"] = ',';
  75. decoder["---."] = '.';
  76. decoder["----"] = '?';
  77.  
  78. ios_base::sync_with_stdio(false);
  79.  
  80. string line;
  81. vector<int> sizes;
  82. ostringstream morse;
  83. while(getline(cin, line)) {
  84.  
  85. for(string::iterator it = line.begin(); it != line.end(); ++it) {
  86. //cout << *it;
  87. string& str = coder[(int)(*it)];
  88. morse << str;
  89. sizes.push_back(str.size());
  90. }
  91. string encoded = morse.str();
  92.  
  93. //cout << "\n" << encoded << "\n";
  94.  
  95. int pos = 0;
  96. reverse(sizes.begin(), sizes.end());
  97. for (vector<int>::iterator it = sizes.begin(); it != sizes.end(); ++it) {
  98. cout << decoder[encoded.substr(pos, *it)];
  99. pos += *it;
  100. }
  101. cout << "\n";
  102.  
  103. sizes.clear();
  104. morse.str("");
  105. morse.clear();
  106. }
  107.  
  108. cout.flush();
  109. }
  110.  

Diff to submission s607

fs.cpp

--- c5.s607.cteam076.fs.cpp.0.fs.cpp
+++ c5.s635.cteam076.fs.cpp.0.fs.cpp
@@ -39,5 +39,5 @@
         coder[(int)'X'] = "-..-";
         coder[(int)'Y'] = "-.--";
-        coder[(int)'X'] = "--..";
+        coder[(int)'Z'] = "--..";
         coder[(int)'_'] = "..--";
         coder[(int)','] = ".-.-";
@@ -68,5 +68,5 @@
         decoder["...-"] = 'V';
         decoder[".--"] = 'W';
-        decoder["-..-"] = 'Q';
+        decoder["-..-"] = 'X';
         decoder["-.--"] = 'Y';
         decoder["--.."] = 'Z';