Шахматный конь ходит буквой “Г” — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом.
мой вариант решения
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if (abs(x1 - y1) == 1) and (abs(x2 - y2) == 2):
print('YES')
elif (abs(x1 -y1) == 2) and (abs(x2 - y2) == 1):
print('YES')
else:
print('NO')
#end
9 из 13 правильно
Python
Помогите решить (Python)
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
dx = abs(x1 - x2)
dy = abs(y1 - y2)
if dx == 1 and dy == 2 or dx == 2 and dy == 1:
print('YES')
else:
print('NO')
-------------------
Эталонное решение с pythontutor
y1 = int(input())
x2 = int(input())
y2 = int(input())
dx = abs(x1 - x2)
dy = abs(y1 - y2)
if dx == 1 and dy == 2 or dx == 2 and dy == 1:
print('YES')
else:
print('NO')
-------------------
Эталонное решение с pythontutor
Павел Галкин
Спасибо, выручил, а у тебя на задачу про шоколадку есть ответ?
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
diff = sorted( [abs(x1-x2), abs(y1-y2)] )
print( 'YES' if diff == [1,2] else 'NO' )
y1 = int(input())
x2 = int(input())
y2 = int(input())
diff = sorted( [abs(x1-x2), abs(y1-y2)] )
print( 'YES' if diff == [1,2] else 'NO' )
a = int(input())
b = int(input())
c = int(input())
d = int(input())
if (((a + b) - (c + d) == 1) or ((a + b) - (c + d) == -1) or ((a + b) - (c + d) == -3) or ((a + b) - (c + d) == 3)) and ((a != c and b != d) and ((a + b != c + d) and (a - b != c - d))):
print('YES')
else:
print('NO')
b = int(input())
c = int(input())
d = int(input())
if (((a + b) - (c + d) == 1) or ((a + b) - (c + d) == -1) or ((a + b) - (c + d) == -3) or ((a + b) - (c + d) == 3)) and ((a != c and b != d) and ((a + b != c + d) and (a - b != c - d))):
print('YES')
else:
print('NO')
x1, y1, x2, y2 = [int(input()) for i in range(4)]
print('YES' if {abs(x2-x1), abs(y2-y1)} == {1, 2} else 'NO')
print('YES' if {abs(x2-x1), abs(y2-y1)} == {1, 2} else 'NO')
Андрей Винник
Так ещё короче
x = int(input())
y = int(input())
x1 = int(input())
y1 = int(input())
if (x - x1 == 2 or x - x1 == -2) and (y - y1 == 1 or y - y1 == -1):
print("YES")
elif (y - y1 == 2 or y - y1 == -2) and (x - x1 == 1 or x - x1 == -1):
print("YES")
else: print("NO")
y = int(input())
x1 = int(input())
y1 = int(input())
if (x - x1 == 2 or x - x1 == -2) and (y - y1 == 1 or y - y1 == -1):
print("YES")
elif (y - y1 == 2 or y - y1 == -2) and (x - x1 == 1 or x - x1 == -1):
print("YES")
else: print("NO")
Эдмунд Ро
твой код не рабочий
Евгений Сичкарь
добавь отступы в принтах
a=int(input())
b=int(input())
c=int(input())
d=int(input())
dx=c-a
dy=d-b
if dx<0:
dx=-dx
if dy<0:
dy=-dy
if dx==2 and dy==1 or dx==1 and dy==2:
print("YES")
else:
print("NO")
b=int(input())
c=int(input())
d=int(input())
dx=c-a
dy=d-b
if dx<0:
dx=-dx
if dy<0:
dy=-dy
if dx==2 and dy==1 or dx==1 and dy==2:
print("YES")
else:
print("NO")
x1 = int(input())
y1 = int(input())
x2 = int(input())
y2 = int(input())
if (x1 == x2 + 2 or x1 == x2 - 2) and (y1 == y2 - 1 or y1 == y2 + 1) or (x1 == x2 + 1 or x1 == x2 - 1) and (y1 == y2 - 2 or y1 == y2 + 2):
print("YES")
else:
print("NO")
y1 = int(input())
x2 = int(input())
y2 = int(input())
if (x1 == x2 + 2 or x1 == x2 - 2) and (y1 == y2 - 1 or y1 == y2 + 1) or (x1 == x2 + 1 or x1 == x2 - 1) and (y1 == y2 - 2 or y1 == y2 + 2):
print("YES")
else:
print("NO")
Программа на C++ (для тех кому на C++ нужно), которая проверяет, может ли шахматный конь попасть с одной клетки на другую за один ход, может выглядеть следующим образом:
#include
#include
int main() {
int x1, y1, x2, y2;
std::cin >> x1 >> y1 >> x2 >> y2;
// Вычисляем разницу между координатами
int dx = std::abs(x2 - x1);
int dy = std::abs(y2 - y1);
// Проверяем условие хода коня
if ((dx == 1 && dy == 2) || (dx == 2 && dy == 1)) {
std::cout
f = int(input())
y = int(input())
w = int(input())
q = int(input())
if f > 8 or y > 8 or w > 8 or q > 8:
print('Ошибка')
elif f
h1=int(input())
g1=int(input())
h2=int(input())
g2=int(input())
if (abs(g1-g2)==1 and abs(h1-h2)==2) or (abs(g1-g2)==2 and abs(h1-h2)==1):
print('YES')
else:
print('NO')
g1=int(input())
h2=int(input())
g2=int(input())
if (abs(g1-g2)==1 and abs(h1-h2)==2) or (abs(g1-g2)==2 and abs(h1-h2)==1):
print('YES')
else:
print('NO')
a = int(input())
b = int(input())
c = int(input())
d = int(input())
if (1<=a-c<=2 or 1<=c-a<=2) and (1<=b-d<=2 or 1<=d-b<=2) and (a+b!=c+d) and (a-b!=c-d):
print('Yes')
else:
print('No')
Такой вариант развития событий также вполне возможен. Все проверки на pitontutor прошел. Первый вариант кода,который был исправлен впоследствии на данный,также прошёл проверку,но ,подставив СВОИ значения,код выдал ложный ответ. Пришлось корректировать на данный. И да,без всяких abs))
b = int(input())
c = int(input())
d = int(input())
if (1<=a-c<=2 or 1<=c-a<=2) and (1<=b-d<=2 or 1<=d-b<=2) and (a+b!=c+d) and (a-b!=c-d):
print('Yes')
else:
print('No')
Такой вариант развития событий также вполне возможен. Все проверки на pitontutor прошел. Первый вариант кода,который был исправлен впоследствии на данный,также прошёл проверку,но ,подставив СВОИ значения,код выдал ложный ответ. Пришлось корректировать на данный. И да,без всяких abs))
Похожие вопросы
- Помогите решить Python!!!!
- Пожалуйста, помогите решить задачу на Python. Упражнения 57,58,59,60.
- Пожалуйста, помогите решить задачу на Python. Упражнение 124, 125, 146
- Помогите решить задачу на Python. Никак не могу решить задачу, больше дня не могу найти ответ! Никакой код не работает.
- Задача в Python? Помогите решить, не получается! Решить нужно без функций и методов. Только циклы и условные операторы.
- Помогите решить задачу на python! Упражнение 41,45,47.
- Помогите решить задачу на python! Упражнение 49,50,51,52,53.
- Помогите решить задачку в Python (!)
- Помогите решить задачу на Python.
- Помогите решите задачку на python