Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.99/75: Рейтинг темы: голосов - 75, средняя оценка - 4.99
10 / 59 / 21
Регистрация: 12.03.2017
Сообщений: 514
1

Какое максимальное количество точек сможет добавить в свой маршрут Капитан Крюк?

11.02.2018, 10:12. Показов 15238. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На пиратской карте отмечено N точек, в которых зарыты сокровища. Каждая точка задана координатами (xi, yi). Координаты указаны в километрах.

Команда Капитана Крюка хочет составить маршрут, чтобы собрать как можно больше кладов. Однако есть ограничение: для любых двух соседних точек маршрута (xi, yi) и (xj, yj) координаты xi и xj могут различаться только последней цифрой, и координаты yi и yj тоже могут различаться только последней цифрой. Например, после точки (15, 10) они могут отправиться в точку (18, 16), а вот из точки (14, 68) в точку (19, 71) пройти уже не получится — ведь 68 и 71 различаются не только последней цифрой. Из точки (5, 12) в точку (13, 14) попасть тоже нельзя, так как числа 5 и 13 отличаются в разряде десятков.

По заданным координатам определите, какое максимальное количество точек сможет добавить в свой маршрут Капитан Крюк.
Формат ввода

В первой строке указано число N (1 ≤ N ≤ 10 000) — количество точек, отмеченных на карте сокровищ.

В следующих N строках содержатся пары координат: xi и yi — координаты i-ой точки. Координаты — целые числа не меньше нуля и не больше 1 000 000 000. Гарантируется, что совпадающих точек в списке нет.
Формат вывода

Выведите одно число — максимальное количество точек, которое Капитан Крюк сможет посетить по маршруту, построенному по описанным правилам.
Пример
Ввод
9
10 18
17 15
25 21
0 21
1 16
25 29
24 24
8 26
10 20
Вывод
3
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2018, 10:12
Ответы с готовыми решениями:

Дано n точек, определить какое максимальное количество точек лежит на одной прямой
Дано n точек, определить какое максимальное количество точек лежит на одной прямой. Решите...

Дано n точек, определить какое максимальное количество точек лежит на одной прямой
Дано n точек, определить какое максимальное количество точек лежит на одной прямой.

Выбрать маршрут, при котором за заданное время t автомобиль сможет пройти максимальное число сервисов
Здравствуйте! Помогите пожалуйста! Автосервис предоставляет n различных услуг, в каждую из...

Какое максимальное расстояние сможет пролететь воздушный шарик пока не сдуется?
Итак представим воздушный шарик (возможно с гелием, возможно без него). И представим самые...

Определить, какое минимальное и какое максимальное количество цапель могло быть в вольере
Добрый день! Не могу решить школьную задачу по информатике. Текст задачи: "Цапли Петя и Маша...

22
Jabbson
15.02.2018, 20:32     Какое максимальное количество точек сможет добавить в свой маршрут Капитан Крюк?
  #21

Не по теме:

Вы забыли добавить волшебное слово "быстро!" ;)

0
60 / 57 / 3
Регистрация: 02.11.2019
Сообщений: 227
20.12.2019, 19:41 22
Решение от пользователя CyberGame (Огромное ему спасибо):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
num = int(input())
point = []
for i in range(num):
    num, m = input().split()
    point.append((int(num), int(m)))
result = []
while len(point) > 0:
    same_route = []
    a = point[0][0] // 10 * 10
    b = point[0][1] // 10 * 10
    for i in range(0, len(point)):
        x = point[i][0] // 10 * 10
        y = point[i][1] // 10 * 10
        if x == a and y == b:
            same_route.append(point[i])
    result.append(same_route)
    point = list(filter(lambda p: p not in same_route, point))
quant = [len(result[i]) for i in range(len(result))]
qmax = max(quant)
print(qmax)
1
4 / 4 / 0
Регистрация: 05.01.2020
Сообщений: 2
08.01.2020, 13:34 23
Python
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
def symbols(c, d):
    if int(c) < 10:
        a = 0
    else:
        a = c[:-1]
    if int(d) < 10:
        b = 0
    else:
        b = d[:-1]
    e = str(a) + str(b)
    return (e)
 
 
dict = {}
lst = []
for i in range(int(input())):
    koord = input().split()
    a = symbols(koord[0], koord[1])
    if a in dict:
        dict[a] += 1
    else:
        dict.update({a: 1})
for i in dict:
    lst.append(dict[i])
lst.sort()
print(lst[-1])
0
08.01.2020, 13:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2020, 13:34
Помогаю со студенческими работами здесь

Определить, какое минимальное и какое максимальное количество пар друзей могло образоваться после соревнования
Помогите решить эту задачу: Для участия в соревнованиях n участников были разбиты некоторым...

Определить какое наибольшее количество конфет сможет получить тренер
Когда проблема с двигателями была решена, а спортсмены заселились в гостиницу, Стеф предложил своей...

Определить, какое количество гостей именинник сможет угостить пирогом
&quot;Как на наши именины испекли мы каравай...&quot; прямоугольной формы со сторонам A и B. Именинник,...

Найти маршрут, включающий максимальное количество городов и удовлетворяющий вышеназванными условиям
Вы победили в соревновании, организованном Канадскими авиалиния-ми. Приз – бесплатное путешествие...

Найти маршрут, включающий максимальное количество городов и удовлетворяющий вышеназванными условиям
Вы победили в соревновании, организованном Канадскими авиалиния-ми. Приз – бесплатное путешествие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru