diff --git a/lesson.18.py b/lesson.18.py new file mode 100644 index 0000000..0daee99 --- /dev/null +++ b/lesson.18.py @@ -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())) + + + + + + +