Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #include <fstream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. ifstream cin("polybius.in");
  7. ofstream cout("polybius.out");
  8.  
  9. char lipsa;
  10.  
  11. int frec[105];
  12.  
  13. void rez1()
  14. {
  15. string s;
  16. cin >> s;
  17. for(int i = 0 ; i < s.length() ; i++)
  18. cout << frec[(int)s[i]];
  19. }
  20.  
  21. void rez2()
  22. {
  23. string s;
  24. cin >> s;
  25.  
  26. for(int i = 0 ; i < s.length() ; i = i + 2)
  27. cout << (char)frec[ ( s[i] - '0' ) * 10 + (s[i+1] - '0')];
  28.  
  29. }
  30.  
  31. int main()
  32. {
  33. int p;
  34. cin >> p;
  35.  
  36. string s;
  37. cin >> s;
  38.  
  39. //cout << s << '\n';
  40. int ant;
  41.  
  42. ant = (int)s[0];
  43.  
  44. if(ant == 66)
  45. lipsa = (char) 66;
  46. else
  47. {
  48. for(int i = 1 ; i < s.length() ; i++)
  49. if((int)s[i] == (int) ant + 1)
  50. ant = s[i];
  51. else
  52. {
  53. lipsa = (char) ant + 1;
  54. break ;
  55. }
  56. }
  57.  
  58.  
  59.  
  60. int nr = 1;
  61.  
  62. for(int k = 0 ; s[k] ; k++)
  63. {
  64. int lin = nr / 5;
  65. int col = nr % 5;
  66. if(!col)
  67. col = 5;
  68. else
  69. lin++;
  70.  
  71.  
  72. frec[(int)s[k]] = lin * 10 + col;
  73.  
  74. frec[lin * 10 + col] = (int) s[k];
  75.  
  76. //cout << (int) s[k] << ' ' << lin * 10 + col << ' ' <<
  77. //frec[(int)s[k]] << ' ' << frec[lin * 10 + col] << '\n';
  78.  
  79.  
  80. nr++;
  81. }
  82.  
  83.  
  84. /*cout << lipsa << '\n';
  85. for(int i = 1 ; i <= 5 ; i++)
  86. {
  87. for(int j = 1 ; j <= 5 ; j++)
  88. cout << tabel[i][j] << ' ';
  89. cout << '\n';
  90. }*/
  91.  
  92.  
  93. (p == 1) ? rez1() : rez2() ;
  94. return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement