Top.Mail.Ru
Ответы

Ход коня на с++

Шахматный конь ходит буквой «Г» — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую за один ход.


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


Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки.


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


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


Примеры

Ввод

Вывод

2

4

3

2

YES

1

1

1

4

NO

По дате
По рейтингу
Аватар пользователя
Новичок

int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << (abs((x1 - x2) * (y1 - y2)) == 2 ? "YES" : "NO");

Или так:

string r[]{"NO", "YES"};
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << r[abs((x1 - x2) * (y1 - y2)) == 2];

Аватар пользователя
Знаток

#include <iostream>
using namespace std;
int main() {
int a,b,c,d;
cin>>a>>b>>c>>d;
if (a+1 ==c && b+2==d){
cout<<"YES";
}
else if (a+1 ==c && b-2==d){
cout<<"YES";
}
else if (a-1 ==c && b+2==d){
cout<<"YES";
}
else if (a-1 ==c && b-2==d){
cout<<"YES";
}
else if (a-2 ==c && b-1==d){
cout<<"YES";
}
else if (a-2 ==c && b+1==d){
cout<<"YES";
}
else if (a+2 ==c && b-1==d){
cout<<"YES";
}
else if (a+2 ==c && b+1==d){
cout<<"YES";
}
else {
cout<<"NO";
}
return 0;
}

на сириусе выдаёт правильный ответ