Сделал 18 задание

This commit is contained in:
parent cbdf8dd04a
commit fb8834bb66

73
lesson.18.py Normal file
View file

@ -0,0 +1,73 @@
''' ****** Задание 18 из 20 *********
* На пиратской карте отмечено множество точек, в которых, по слухам, зарыты сокровища. Каждая точка задана координатами
(xi,yi)в километрах.
Капитан Крюк хочет собрать как можно больше кладов за один маршрут. Однако есть ограничение: между двумя соседними точками маршрута можно перемещаться только в том случае, если координаты этих точек различаются только последней цифрой — как по оси
x, так и по оси y.
Например:
Из точки (15, 10) можно попасть в (18, 16) — координаты отличаются только последней цифрой (5 → 8 и 0 → 6).
Но из (14, 68) в (19, 71) попасть нельзя, потому что десятки и сотни отличаются.
Также нельзя попасть из (5, 12) в (13, 14), так как 5 и 13 различаются не только в последнем разряде.
Напишите программу, которая по списку координат точек определяет, какое максимальное количество точек может входить в маршрут Капитана Крюка, построенный по описанному правилу.
Формат ввода
В первой строке указано число
N (1≤N≤10 в пятой степени)
— количество точек, отмеченных на карте сокровищ.
В следующих N строках содержатся пары координат:
xi и yi — координаты
i-ой точки.
Координаты — целые числа не меньше нуля и не больше
1
0
9
10
9
.
Гарантируется, что совпадающих точек в списке нет.
Формат вывода
Выведите одно число — максимальное количество точек, которое Капитан Крюк сможет посетить по маршруту, построенному по описанным правилам.
Подсказка
Преобразуйте все координаты, разделив их на 10 без остатка. Тогда количество одинаковых точек и будет ответом.
Пример 1
Ввод
9
10 18
17 15
25 21
0 21
1 16
25 29
24 24
8 26
10 20
Вывод
3
'''
if __name__ == "__main__":
d = {}
for _ in range(int(input())):
x = input().split()
key = f'{x[0][:-1]}-{x[1][:-1]}'
if key not in d:
d[key] = 1
else:
d[key] += 1
print(max(d.values()))