-
Notifications
You must be signed in to change notification settings - Fork 0
/
two_chips.py
36 lines (28 loc) · 1.66 KB
/
two_chips.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
Рита и Гоша играют в игру. У Риты есть n фишек, на каждой из которых написано количество очков. Сначала Гоша называет
число max_keys, затем Рита должна выбрать две фишки, сумма очков на которых равна заданному числу.
Рите надоело искать фишки самой, и она решила применить свои навыки программирования для решения этой задачи. Помогите
ей написать программу для поиска нужных фишек.
"""
from typing import List, Tuple, Optional
def two_sum(arr: List[int], target_sum: int) -> Optional[Tuple[int, int]]:
for i in range(0, len(arr)):
for j in range(i + 1, len(arr)):
if arr[i] + arr[j] == target_sum:
return arr[i], arr[j]
# По условию задачи пара обязательно должна найтись.
# Но предусмотрительность не помешает:
# если пара не найдена - вернём None, None (или можно выкинуть exception).
return None
def read_input() -> Tuple[List[int], int]:
n = int(input())
arr = list(map(int, input().strip().split()))
target_sum = int(input())
return arr, target_sum
def print_result(result: Optional[Tuple[int, int]]) -> None:
if result is None:
print(None)
else:
print(" ".join(map(str, result)))
arr, target_sum = read_input()
print_result(two_sum(arr, target_sum))