74 lines
3 KiB
Python
74 lines
3 KiB
Python
''' ****** Задание 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()))
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|