Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/40: Рейтинг темы: голосов - 40, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 18.01.2023
Сообщений: 80

Массив. Выведите остановки самого длинного маршрута

19.01.2023, 13:15. Показов 11306. Ответов 26
Метки нет (Все метки)

На кольцевом маршруте автобуса из-за ремонта перекрыли движение около 2 остановок. Теперь там нельзя проехать.
Выведите массив с самым длинным маршрутом, который теперь может проехать автобус. Если маршрутов максимальной длины несколько, можно вывести любой.
Есть число N и N строк с названиями остановок. Затем ещё в 2 строках записаны 2 остановки из этого списка.
Выведите остановки самого длинного маршрута, который может проехать автобус. Остановки могут начинаться с любого конца маршрута, но следовать в правильном порядке.

Ввод в столбик
8
Кукушкино
Петрово
Пляж
Сосенское
Улыбино
Редкая Роща
Усадьба
Поленово
Пляж
Редкая Роща

Вывод в столбик
Петрово
Кукушкино
Поленово
Усадьба
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.01.2023, 13:15
Ответы с готовыми решениями:

Найдите и выведите длину самого длинного слова
Дана строка, состоящая из слов, записанных через пробел. Найдите и выведите длину самого длинного слова. Слово - непрерывная...

Используя итератор zip, найдите и выведите на экран координаты самого длинного отрезка
C клавиатуры в программу передаются две строки. В первой написаны через пробел координаты начал отрезков, во второй – координаты концов. В...

Ввести массив символов, содержащий текст. Определить длину самого короткого слова и самого длинного слова
Ввести массив символов, содержащий текст. Определить длину самого короткого слова и самого длинного слова..

26
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
25.11.2023, 06:47
Ну или так:
Python
1
2
3
4
n = int(input('n = '))
arr = [input('->') for _ in range(n)]
a, b = sorted( (arr.index(input('a: ')), arr.index(input('b: '))) )
print(*arr[a+1:b]) if b-a-1 > n-b+a-1 else print(*(arr[b+1:] + arr[:a]))
0
0 / 0 / 0
Регистрация: 20.01.2022
Сообщений: 55
12.01.2024, 22:02
Где в программе ошибка? Как все же решить эту задачу?
0
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
12.01.2024, 23:45
Вот вроде правильное решение.
0
0 / 0 / 0
Регистрация: 02.02.2024
Сообщений: 21
16.02.2024, 10:08
Вывод правильный, а программа дальше не пускает. Что-то не так, не выполняются закрытые тексты
0
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
16.02.2024, 13:35
Цитата Сообщение от tatjana76 Посмотреть сообщение
программа дальше не пускает
Вот так правильнее:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
n = int(input('n = '))
arr = [input('->') for _ in range(n)]
a = input('a = ')
b = input('b = ')
a_ind = arr.index(a)
b_ind = arr.index(b)
res = [[],[]]
for k in range(2):
    i = a_ind
    while True:
        i = (i+[1,-1][k])%n
        if i == b_ind:
            break
        res[k].append(arr[i])
 
res = max(res, key=len)
print(*res, sep='\n')
1
0 / 0 / 0
Регистрация: 11.11.2024
Сообщений: 1
11.11.2024, 23:00
Цитата Сообщение от Lyapis Посмотреть сообщение
Надо учесть, что сломанные остановки могут вводиться в обратном порядке.
Боже, спасибо!!! Думала минут 15 что ему конкретно не так.

Python
1
2
3
4
5
6
7
8
9
10
11
stops = [input() for _ in range(int(input()))]
a = stops.index(input())
b = stops.index(input())
if a>b: a,b = b,a
road1 = stops[(a+1):b]
road2 = stops[(b+1):]+stops[:a]
 
if len(road1)>len(road2):
    print(*road1, sep = '\n')
else:
    print(*road2, sep = '\n')
0
0 / 0 / 0
Регистрация: 17.12.2025
Сообщений: 1
17.12.2025, 12:12
На яндекс учебнике это проходит

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
N = int(input())
stops = [input() for _ in range(N)]
blocked1 = input()
blocked2 = input()
 
# Находим индексы перекрытых остановок
idx1 = stops.index(blocked1)
idx2 = stops.index(blocked2)
 
# Упорядочиваем индексы
first = min(idx1, idx2)
second = max(idx1, idx2)
 
# Два возможных маршрута
route1 = stops[second+1:] + stops[:first]
route2 = stops[first+1:second]
 
# Выбираем самый длинный
if len(route1) >= len(route2):
    print('\n'.join(route1))
else:
    print('\n'.join(route2))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2025, 12:12

Создать один многомерный массив по максимальной длине самого длинного массива
допустим есть несколько одномерных массивов разной длинны надо создать один многомерный массив по максимальной длине самого длинного...

Определение самого короткого и самого длинного слова во введенной строке текста
прошу помогите написать блок схему к задаче. Создать в системе программирования Visual Studio 200* проект VB-программы с одной формой для...

Определить длину самого короткого самого длинного слова в массиве символов
Ввести массив символов, содержащий текст. Определить длину самого короткого слова и самого длинного слова

В задаваемой строке определить длину самого короткого и самого длинного слова
В задаваемой строке определить длину самого короткого и самого длинного слова.

Процедура: определить в строке длину самого короткого и самого длинного слова
var str: string; len, i: byte; shortest, longest, current: byte; begin readln(str); len := length(str); ...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru