---
tags: Python
---
# Практика 6. Умовний оператор
## Базовий рівень
### [Задача 1. Мінімум із двох чисел](https://snakify.org/en/lessons/if_then_else_conditions/problems/minimum/)
Дано два цілих числа. Виведіть значення найменшого.
[](https://mermaid.live/edit#pako:eNplj81Kw0AQgF9lmJOFlFCPQfRSn6Deujks2V0bSHYlbrAhzUEPevHkoQdBBJ-gCEIp2GeYfaNOUw_Szml-vm-YaTFzSmOCpnAP2UxWHm7GwgLHxHN1NqVP2oYXWoUn2tImHcBweAm5m8b0Rt_0Ex55sIZ5BE2cHsTcHRjTzuECGrjq_vqm7y_oi1a0WTA36res_--J0x66tupI-gjLvXJ-ojTHCid89ntY0i9Dz-E1HQiLEZa6KmWu-Nl2Dwr0M11qgQmnShtZF16gsB2jsvZu0tgME1_VOsL6Tkmvx7m8rWSJiZHFve52cPp_Bg)
:::spoiler Підказка

<!--
```
ввести x
ввести y
если x < y:
вывести x
иначе:
вывести y
```
``` python
x = int(input())
y = int(input())
if x < y:
print(x)
else:
print(y)
```
-->
:::
### [Задача 2. Знак числа](https://snakify.org/en/lessons/if_then_else_conditions/problems/signum/)
У математиці функцію `sign(x)` (знак числа) визначено так:
````
sign(x) = 1, якщо x > 0,
sign(x) = -1, якщо x < 0,
sign(x) = 0, якщо x = 0.
````
Для цього числа `x` виведіть значення `sign(x)`. Це завдання бажано вирішити з використанням каскадних інструкцій `if... elif... else`.
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення n
cond=>condition: n > 0 ?
io1=>inputoutput: Виведення 1
cond2=>condition: n < 0 ?
io2=>inputoutput: Виведення -1
io3=>inputoutput: Виведення 0
st->io->cond
cond(true@Так)->io1->e
cond(false@Ні)->cond2
cond2(true@Так)->io2->e
cond2(false@Ні)->io3->e
```
:::spoiler Підказка

<!--
```
ввести n
если n больше 0:
вывести 1
иначе если n меньше 0:
вывести -1
иначе:
вывести 0
```
``` python
n = int(input())
if n > 0:
print(1)
elif n < 0:
print(-1)
else:
print(0)
```
-->
:::
### [Задача 3. Мінімум із трьох чисел](https://snakify.org/en/lessons/if_then_else_conditions/problems/minimum3/)
Дано три цілих числа. Виведіть значення найменшого.
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення a, b, c
cond=>condition: (a <= b) та
(a <= с)
io1=>inputoutput: Виведення a
cond2=>condition: (b <= a) та
(b <= с)
io2=>inputoutput: Виведення b
io3=>inputoutput: Виведення c
st->io->cond
cond(true@Так)->io1->e
cond(false@Ні)->cond2
cond2(true@Так)->io2->e
cond2(false@Ні)->io3->e
```
:::spoiler Підказка

<!--
```
ввести a, b, c
если a меньше или равно b и a меньше или равно с:
вывести a
иначе если b меньше или равно a и c:
вывести b
иначе:
вывести c
```
``` python
a = int(input())
b = int(input())
c = int(input())
if a <= b and a <= c:
print(a)
elif b <= a and b <= c:
print(b)
else:
print(c)
```
-->
:::
### [Задача 4. Скільки збігається чисел](https://snakify.org/en/lessons/if_then_else_conditions/problems/num_equal/)
Дано три цілих числа. Визначте, скільки з них збігаються. Програма повинна вивести одне з чисел: 3 (якщо всі збігаються), 2 (якщо два збігаються) або 0 (якщо всі числа є різними).
[](https://mermaid.live/edit#pako:eNplUj9Lw0AU_yrHmxpIiaZboHZpR6c62ctwSS5NIMmVeEEkzaCDLk4OHQQR_ARVEErBfIaXb-Q1KakmNxzv997vD7y7HFzhcbDAj8StG7BUkqspTYg6c6nQYIHvWFZPuK0esMS9rZHh8IKEYmHgC37hd3WvBjvCdOLoxDXsRhuKhubnjIzHxDlcLpkUx6lfT9f4gVvcrxX7vLbb_TEcGXZNmiVeR_RWbZTEN3MKg8ZdI8rnE0vSYPeEnSOeUGizzW642Qs3--Hmv3Qx6mnOuhpVqO29Vhv8UaTH6tnWaAI6xDyNWeipnecHIgUZ8JhTsFTpcZ9lkaRAk0JRWSbF_C5xwZJpxnXIVh6TfBqyZcpisHwW3bTdmRdKkbbNFUuuhTiRUpEtgxbxmnzZPH39A4pf4tzJcg)
:::spoiler Підказка

<!--
```
ввести a
ввести b
ввести c
если a равно b равно c:
вывести 3
если иначе a равно b или a равно c или b равно c:
вывести 2
иначе:
вывести 0
```
``` python
a = int(input())
b = int(input())
c = int(input())
if a == b == c:
print(3)
elif a == b or a == c or b==c:
print(2)
else:
print(0)
```
-->
:::
## Середній рівень
### [Задача 5. Хід тури](https://snakify.org/en/lessons/if_then_else_conditions/problems/rook_move/)
<div style="float: right; max-width: 25%;margin-left: 10px;" >
<img src="https://snakify.org/static/images/problems/rook_move.png">
</div>
Шахова тура ходить по горизонталі або вертикалі. Дано дві різні клітини шахової дошки, визначте, чи може тура потрапити з першої клітини на другу одним ходом. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і рядок спочатку для першої клітини, потім для другої клітини. Програма повинна вивести `YES`, якщо з першої клітини ходом тури можна потрапити в другу або `NO` в іншому випадку.
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення
h1, v1, h2, v2
cond=>condition: h1 дорівнює h2
або
v1 дорівнює v2
io1=>inputoutput: Виведення YES
io2=>inputoutput: Виведення NO
st->io->cond
cond(true@Так)->io1->e
cond(false@Ні)->io2->e
```
:::spoiler Підказка

<!--
```
ввести h1, v1, h2, v2
если h1 равно h2 или v1 равно v2:
вывести YES
иначе:
вывести NO
```
``` python
h1 = int(input())
v1 = int(input())
h2 = int(input())
v2 = int(input())
if (h1 == h2) or (v1 == v2):
print('YES')
else:
print('NO')
```
-->
:::
### [Задача 6. Шахова дошка](https://snakify.org/en/lessons/if_then_else_conditions/problems/chess_board/)
<div style="float: right; max-width: 25%;margin-left: 10px;" >
<img src="http://3.bp.blogspot.com/-9b0biHqujnU/T0O1_lo30CI/AAAAAAAALc0/K4jlU1rEKX8/s1600/%D0%B4%D0%BE%D1%81%D0%BA%D0%B0+%D0%B4%D0%BB%D1%8F+%D0%B8%D0%B3%D1%80%D1%8B+%D0%B2+%D1%88%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B+1.jpg">
</div>
Задано дві клітинки шахівниці. Якщо вони пофарбовані в один колір, то виведіть слово YES, а якщо в різні кольори - то NO. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і рядок спочатку для першої клітини, потім для другої клітини.
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення
v1, h1, v2, h2
cond=>condition: (v1 + h1) % 2 ==
(v2 + h2) % 2
io1=>inputoutput: Виведення YES
io2=>inputoutput: Виведення NO
st->io->cond
cond(true@Так)->io1->e
cond(false@Ні)->io2->e
```
:::spoiler Підказка

<!--
```
ввести v1
ввести h1
ввести v2
ввести h2
если остаток от деления на 2 для (v1 + h1)
равняется остатку от деления на 2 для (v2 + h2):
вывести YES
иначе:
вывести NO
```
``` python
v1 = int(input())
h1 = int(input())
v2 = int(input())
h2 = int(input())
if (v1 + h1) % 2 == (v2 + h2) % 2:
print('YES')
else:
print('NO')
```
-->
:::
### [Задача 7. Ход короля](https://snakify.org/en/lessons/if_then_else_conditions/problems/king_move/)
<div style="float: right; max-width: 25%;margin-left: 10px;" >
<img src="https://snakify.org/static/images/problems/king_move.png">
</div>
Шаховий король ходить по горизонталі, вертикалі та діагоналі, але тільки на 1 клітинку. Дано дві різні клітини шахівниці, визначте, чи може король потрапити з першої клітини на другу одним ходом. Програма отримує на вхід чотири числа від 1 до 8 кожне, що задають номер стовпця і рядок спочатку для першої клітини, потім для другої клітини. Програма повинна вивести `YES`, якщо з першої клітини ходом короля можна потрапити в другу або `NO` в іншому випадку.
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення
h1, v1, h2, v2
cond=>condition: модуля різниць
h1, h2 та v1, v2
менше або рівні 1
io1=>inputoutput: Виведення YES
io2=>inputoutput: Виведення NO
st->io->cond
cond(true@Так)->io1->e
cond(false@Ні)->io2->e
```
:::spoiler Підказка

<!--
```
ввести h1, v1, h2, v2
если модуля разностей h1, h2 и v1, v2 меньше или равны 1:
вывести YES
иначе:
вывести NO
```
``` python
h1 = int(input())
v1 = int(input())
h2 = int(input())
v2 = int(input())
if abs(h1 - h2) <= 1 and abs(v1 - v2) <= 1:
print('YES')
else:
print('NO')
```
-->
:::
### [Задача 8. Хід слона](https://snakify.org/en/lessons/if_then_else_conditions/problems/bishop_move/)
<div style="float: right; max-width: 25%;margin-left: 10px;" >
<img src="https://snakify.org/static/images/problems/bishop_move.png">
</div>
Шаховий слон ходить по діагоналі. Дано дві різні клітини шахової дошки, визначте, чи може слон потрапити з першої клітини на другу одним ходом.
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення
h1, v1, h2, v2
cond=>condition: різниці h1, v1 и
h2, v2 рівні або
відповідні
суми дорівнюють
io1=>inputoutput: Виведення YES
io2=>inputoutput: Виведення NO
st->io->cond
cond(true@Так)->io1->e
cond(false@Ні)->io2->e
```
:::spoiler Підказка

<!--
```
ввести h1, v1, h2, v2
если разности h1, v1 и h2, v2 равны или соответствующие суммы равны:
вывести YES
иначе:
вывести NO
```
``` python
h1 = int(input())
v1 = int(input())
h2 = int(input())
v2 = int(input())
if (h1 - v1) == (h2 - v2) or (h1 + v1) == (h2 + v2):
print('YES')
else:
print('NO')
```
-->
:::
## Підвищений рівень
### [Задача 9. Хід ферзя](https://snakify.org/en/lessons/if_then_else_conditions/problems/queen_move/)
<div style="float: right; max-width: 25%;margin-left: 10px;" >
<img src="https://snakify.org/static/images/problems/queen_move.png">
</div>
Шаховий ферзь ходить по діагоналі, горизонталі чи вертикалі. Дано дві різні клітини шахової дошки, визначте, чи може ферзь потрапити з першої клітини на другу одним ходом.
:::spoiler Підказка
<!--
```
ввести h1, v1, h2, v2
если h1 равно h2 или v1 равно v2 или разности h1, v1 и h2, v1 равны или соответствующие суммы равны:
вывести YES
иначе:
вывести NO
```

``` python
h1 = int(input())
v1 = int(input())
h2 = int(input())
v2 = int(input())
if (h1 == h2) or (v1 == v2) or (h1 - v1) == (h2 - v2) or (h1 + v1) == (h2 + v2):
print('YES')
else:
print('NO')
```
-->
:::
### [Задача 10. Хід коня](https://snakify.org/en/lessons/if_then_else_conditions/problems/knight_move/)
<div style="float: right; max-width: 25%;margin-left: 10px;" >
<img src="https://snakify.org/static/images/problems/knight_move.png">
</div>
Шаховий кінь ходить буквою "Г" - на дві клітинки по вертикалі в будь-якому напрямку і на одну клітинку по горизонталі, або навпаки. Дано дві різні клітини шахової дошки, визначте, чи може кінь потрапити з першої клітини на другу одним ходом.
:::spoiler Підказка
<!--
```
ввести h1, v1, h2, v2
если модуль разности v1 и v2 равен 1, а модуль разности h1 и h2 равен 2 или
модуль разности v1 и v2 равен 2, а модуль разности h1 и h2 равен 1:
вывести YES
иначе:
вывести NO
```

```python
h1 = int(input())
v1 = int(input())
h2 = int(input())
v2 = int(input())
if abs(v1 - v2) == 1 and abs(h1 - h2) == 2 or \
abs(v1 - v2) == 2 and abs(h1 - h2) == 1:
print('YES')
else:
print('NO')
```
-->
:::
### [Задача 11. Шоколадка](https://snakify.org/en/lessons/if_then_else_conditions/problems/chocolate/)
Шоколадка має вигляд прямокутника, розділеного на `n×m` часточок. Шоколадку можна один раз розламати по прямій на дві частини. Визначте, чи можна таким чином відламати від шоколадки частину, що складається рівно з `k` часточок. Програма отримує на вхід три числа: `n, m, k` і повинна вивести `YES` або `NO`.
:::spoiler Підказка
<!--
```
ввести n, m, k
если k меньше чем площадь шоколадки и k кратно n или m:
вывести YES
иначе:
вывести NO
```

```python
n = int(input())
m = int(input())
k = int(input())
if k < (n * m) and (k % n == 0 or k % m == 0):
print('YES')
else:
print('NO')
```
-->
:::
### [Задача 12. Високосний рік](https://snakify.org/en/lessons/if_then_else_conditions/problems/leap_year/)
Дано натуральне число. Потрібно визначити, чи є рік із цим номером високосним. Якщо рік є високосним, то виведіть LEAP, інакше виведіть COMMON. Нагадаємо, що відповідно до григоріанського календаря, рік є високосним, якщо його номер кратний 4, але не кратний 100, а також якщо він кратний 400.
:::spoiler Підказка
<!--
```flow
st=>start: Початок
e=>end: Кінець
io=>inputoutput: Введення n
cond=>condition: (n кратно 4 та
n не кратно 100)
або (n кратно 400)
io1=>inputoutput: Виведення LEAP
io2=>inputoutput: Виведення COMMON
st->io->cond
cond(true@Да)->io1->e
cond(false@Нет)->io2->e
```

```
ввести n
если (n кратно 4 и n не кратно 100) или (n кратно 400):
вывести YES
иначе:
вывести NO
```
``` python
n = int(input())
if (n % 4 == 0 and n % 100!= 0) or (n % 400 == 0):
print('YES')
else:
print('NO')
```
-->
:::
### Задача 13. Яша плаває у басейні
Яша плавав у басейні розміром `N×M` метрів і втомився. У цей момент він виявив, що знаходиться на відстані `x` метрів від одного з довгих бортиків (не обов'язково від найближчого) та `y` метрів від одного з коротких бортиків. Яку мінімальну відстань має пропливти Яша, щоб вибратися з басейну на борт? Програма отримує вхід числа `N, M, x, y`. Програма повинна вивести число метрів, яке потрібно пропливти Яші до борту.
---
(c) Яценко Р.М., 2018-2025 [](http://kit.kh.ua/)
[Навчальний центр комп'ютерних технологій "Кіт"](http://kit.kh.ua/)