• Предмет: Информатика
  • Автор: dashenkavorobyova
  • Вопрос задан 3 года назад

На c++ пожалуйста
Ход короля и шахматная нотация
Шахматный король ходит по горизонтали, вертикали и диагонали, но только на одну клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом.

Входные данные

Входной файл состоит из двух строк — координат первой и второй клетки в шахматной нотации.

Как известно, в шахматной нотации горизонтальные строки обозначаются цифрами от 1 до 8, считая от расположения белых фигур, стоящих внизу доски, а вертикальные столбцы — буквами латинского алфавита: a,b,c,d,e,f,g,h.

Выходные данные

Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую, или NO в противном случае.

Примеры
Ввод
Вывод
a1
a2
YES
a1
c2
NO

Ответы

Ответ дал: Dre4nt
9

Ответ:

#include <iostream>

using namespace std;

int main(){

char c1, s1, c2, s2;

cin >> c1;

cin >> s1;

cin >> c2;

cin >> s2;

bool colComp (c1 - c2 <= 1 && c1 - c2 >= -1), strComp (s1 - s2 <= 1 && s1 - s2 >= -1);

if (c1 == c2 && s1 == s2){

cout << "NO";

}

else if (colComp && strComp){

   if (c1 <= 0 || s1 <= 0 || c2 <= 0 || s2 <= 0){

       cout << "NO";

   }

   else {cout << "YES";}

 

}

else {cout << "NO";}

return 0;

}

Объяснение:

Вас заинтересует