Source code for submission s533

fs.cpp

  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <map>
  5.  
  6. using namespace std;
  7.  
  8. int main(){
  9. map<string,char> m;
  10. m[".-"]='A';
  11. m["-..."]='B';
  12. m["-.-."]='C';
  13. m["-.."]='D';
  14. m["."]='E';
  15. m["..-."]='F';
  16. m["--."]='G';
  17. m["...."]='H';
  18. m[".."]='I';
  19. m[".---"]='J';
  20. m["-.-"]='K';
  21. m[".-.."]='L';
  22. m["--"]='M';
  23. m["-."]='N';
  24. m["---"]='O';
  25. m[".--."]='P';
  26. m["--.-"]='Q';
  27. m[".-."]='R';
  28. m["..."]='S';
  29. m["-"]='T';
  30. m["..-"]='U';
  31. m["...-"]='V';
  32. m[".--"]='W';
  33. m["-..-"]='X';
  34. m["-.--"]='Y';
  35. m["--.."]='Z';
  36. m["..--"]='_';
  37. m["---."]='.';
  38. m[".-.-"]=',';
  39. m["----"]='?';
  40.  
  41. map<char,string> r;
  42. r['A']=".-";
  43. r['B']="-...";
  44. r['C']="-.-.";
  45. r['D']="-..";
  46. r['E']=".";
  47. r['F']="..-.";
  48. r['G']="--.";
  49. r['H']="....";
  50. r['I']="..";
  51. r['J']=".---";
  52. r['K']="-.-";
  53. r['L']=".-..";
  54. r['M']="--";
  55. r['N']="-.";
  56. r['O']="---";
  57. r['P']=".--.";
  58. r['Q']="--.-";
  59. r['R']=".-.";
  60. r['S']="...";
  61. r['T']="-";
  62. r['U']="..-";
  63. r['V']="...-";
  64. r['W']=".--";
  65. r['X']="-..-";
  66. r['Y']="-.--";
  67. r['Z']="--..";
  68. r['_']="..--";
  69. r['.']="---.";
  70. r[',']=".-.-";
  71. r['?']="----";
  72.  
  73. string s;
  74. vector<int> v;
  75. while(cin>>s){
  76. v.clear();
  77. string translate="";
  78. for(int i=0;i<s.size();i++){
  79. translate+=r[s[i]];
  80. v.push_back(r[s[i]].size());
  81. }
  82. string out="";
  83. string morse;
  84. int index=0;
  85. for(int i=v.size()-1;i>=0;i--){
  86. morse="";
  87. //nacte pocet znaku
  88. for (int j=0;j<v[i];j++){
  89. morse+=translate[index++];
  90. }
  91. out+=m[morse];
  92. }
  93. cout<<out<<endl;
  94. }
  95.  
  96. return 0;
  97. }
  98.