Source code for submission s481

fs.cpp

  1. #include <vector>
  2. #include <list>
  3. #include <map>
  4. #include <set>
  5. #include <algorithm>
  6. #include <numeric>
  7. #include <utility>
  8. #include <sstream>
  9. #include <iostream>
  10. #include <iomanip>
  11. #include <cstdio>
  12. #include <cmath>
  13. #include <cstdlib>
  14. #include <string>
  15.  
  16. #define vi vector <int>
  17. #define vl vector <long long>
  18. #define vpii vector <pair <int,int> >
  19. #define mp(x,y) make_pair(x,y)
  20. #define all(x) (x).begin(),(x).end()
  21. #define sz(x) (int)(x).size()
  22. #define FOR(i,n) for(ll i=0;i<int(n);i++)
  23. #define READ(v,n) {FOR(i,n){ll x;cin>>x;v.pb(x);} }
  24. #define gmin(a,b) {if (b<a) a=b;}
  25. #define gmax(a,b) {if (b>a) a=b;}
  26. #define pb push_back
  27. #define ppb pop_back
  28. typedef long long ll;
  29. typedef unsigned long long ull;
  30. using namespace std;
  31.  
  32. int main(){
  33. vector <string> v(256,"");
  34. v['A']=".-";
  35. v['B']="-...";
  36. v['C']="-.-.";
  37. v['D']="-..";
  38. v['E']=".";
  39. v['F']="..-.";
  40. v['G']="--.";
  41. v['H']="....";
  42. v['I']="..";
  43. v['J']=".---";
  44. v['K']="-.-";
  45. v['L']=".-..";
  46. v['M']="--";
  47. v['N']="-.";
  48. v['O']="---";
  49. v['P']=".--.";
  50. v['Q']="--.-";
  51. v['R']=".-.";
  52. v['S']="...";
  53. v['T']="-";
  54. v['U']="..-";
  55. v['V']="...-";
  56. v['W']=".--";
  57. v['X']="-..-";
  58. v['Y']="-.--";
  59. v['Z']="--..";
  60. v['_']="..--";
  61. v[',']=".-.-";
  62. v['.']="---.";
  63. v['?']="----";
  64.  
  65. string s;
  66. while(cin>>s){
  67. string r="";
  68. vi l;
  69. FOR(i,s.length()){
  70. r=r+v[s[i]];
  71. l.pb(v[s[i]].length());
  72. }
  73. string res="";
  74. for(int i=sz(l)-1;i>=0;i--) {
  75. string x=r.substr(0,l[i]);
  76. r=r.substr(l[i]);
  77. FOR(i,256){
  78. if(v[i]==x){
  79. res=res+(char)i;
  80. }
  81. }
  82. }
  83. cout<<res<<endl;
  84. }
  85.  
  86.  
  87. return 0;
  88. }
  89.  
  90.  
  91.