egogoboy

мы с конём вдвоём по полю пойдём

May 22nd, 2022 (edited)
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4.  
  5. int search(int x1, int y1, int& x2, int& y2, int& temp) {
  6.  
  7.     if (x1 == 0 || y1 == 0) {
  8.         return 0;
  9.     }
  10.  
  11.     if (x1 == x2 && y1 == y2 && temp < 3 && temp > 0) {
  12.         return 1;
  13.     }
  14.  
  15.     temp++;
  16.  
  17.     int x = 1, y = 2;
  18.  
  19.     if (temp < 3) {
  20.         for (int i = 0; i < 2; i++) {
  21.             if (search(x1 + x, y1 + y, x2, y2, temp) != 0) {
  22.                 return temp;
  23.             }
  24.             if (search(x1 - x, y1 - y, x2, y2, temp) != 0) {
  25.                 return temp;
  26.             }
  27.             if (search(x1 + x, y1 - y, x2, y2, temp) != 0) {
  28.                 return temp;
  29.             }
  30.             if (search(x1 - x, y1 + y, x2, y2, temp) != 0) {
  31.                 return temp;
  32.             }
  33.             std::swap(x, y);
  34.         }
  35.     }
  36.  
  37.     temp--;
  38.  
  39.     return 0;
  40.  
  41. }
  42.  
  43. int main() {
  44.  
  45.     std::ifstream fin("input.txt");
  46.     std::ofstream fout("output.txt");
  47.  
  48.     std::string s1, s2;
  49.  
  50.     fin >> s1 >> s2;
  51.  
  52.     int x1 = s1[0] - 'a' + 1, y1 = s1[1] - '0',
  53.         x2 = s2[0] - 'a' + 1, y2 = s2[1] - '0';
  54.     int temp = 0;
  55.     int k = search(x1, y1, x2, y2, temp);
  56.  
  57.     if (k != 0) {
  58.         fout << k << std::endl;
  59.         return 0;
  60.     }
  61.  
  62.     fout << "NO" << std::endl;
  63.     return 0;
  64.  
  65. }
Add Comment
Please, Sign In to add comment