Advertisement
arfin97

[UVa 11223] O: Dah Dah Dah!

Feb 9th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.62 KB | None | 0 0
  1. //https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=2164
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. int main(){
  7.     int tc;
  8.     cin >> tc;
  9.     getchar();
  10.     for(int tr = 1; tr <= tc; tr++){
  11.  
  12.         map<string, char> m;
  13.         m[".-"] = 'A';
  14.         m["-..."] = 'B';
  15.         m["-.-."] = 'C';
  16.         m["-.."] = 'D';
  17.         m["."] = 'E';
  18.         m["..-."] = 'F';
  19.         m["--."] = 'G';
  20.         m["...."] = 'H';
  21.         m[".."] = 'I';
  22.  
  23.         m[".---"] = 'J';
  24.         m["-.-"] = 'K';
  25.         m[".-.."] = 'L';
  26.         m["--"] = 'M';
  27.         m["-."] = 'N';
  28.         m["---"] = 'O';
  29.         m[".--."] = 'P';
  30.         m["--.-"] = 'Q';
  31.         m[".-."] = 'R';
  32.  
  33.         m["..."] = 'S';
  34.         m["-"] = 'T';
  35.         m["..-"] = 'U';
  36.         m["...-"] = 'V';
  37.         m[".--"] = 'W';
  38.         m["-..-"] = 'X';
  39.         m["-.--"] = 'Y';
  40.         m["--.."] = 'Z';
  41.         m["-----"] = '0';
  42.  
  43.         m[".----"] = '1';
  44.         m["..---"] = '2';
  45.         m["...--"] = '3';
  46.         m["....-"] = '4';
  47.         m["....."] = '5';
  48.         m["-...."] = '6';
  49.         m["--..."] = '7';
  50.         m["---.."] = '8';
  51.         m["----."] = '9';
  52.  
  53.         m[".-.-.-"] = '.';
  54.         m["--..--"] = ',';
  55.         m["..--.."] = '?';
  56.         m[".----."] = '\'';
  57.         m["-.-.--"] = '!';
  58.         m["-..-."] = '/';
  59.         m["-.--."] = '(';
  60.         m["-.--.-"] = ')';
  61.         m[".-..."] = '&';
  62.  
  63.         m["---..."] = ':';
  64.         m["-.-.-."] = ';';
  65.         m["-...-"] = '=';
  66.         m[".-.-."] = '+';
  67.         m["-....-"] = '-';
  68.         m["..--.-"] = '_';
  69.         m[".-..-."] = '"';
  70.         m[".--.-."] = '@';
  71.  
  72.         string morse;
  73.         getline(cin, morse);
  74.  
  75.         vector<char> message;
  76.  
  77.         char c_morse[morse.length()+1];
  78.         strcpy(c_morse, morse.c_str());
  79.  
  80.         char *word;
  81.         word = strtok(c_morse, " ");
  82.         while(word){
  83.             string str = word;
  84.             map<string, char>::iterator it = m.find(str);
  85.             if(it != m.end()) message.push_back(it->second);
  86.             word = strtok(NULL, " ");
  87.         }
  88.  
  89.         printf("Message #%d\n", tr);
  90.         int j = 0;
  91.         for(int i = 0; i < morse.length(); i++){
  92.             if(morse[i] == ' '){
  93.                 cout << message[j];
  94.                 if((i+1) != morse.length() && morse[i+1] == ' '){
  95.                     cout << " ";
  96.                     i++;
  97.                 }
  98.                 j++;
  99.             }
  100.         }
  101.         cout << message[j] << endl;
  102.         if(tr != tc) cout << endl;
  103.  
  104.         //.--- --- -... -.. --- -. . ..--.. ..-. .. -. . -.-.--
  105.  
  106. }//testcase
  107.     return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement