Сделал 18 задание
This commit is contained in:
parent
cbdf8dd04a
commit
fb8834bb66
73
lesson.18.py
Normal file
73
lesson.18.py
Normal 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()))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in a new issue