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

Сортировка вагонов

09.06.2021, 10:15. Показов 2705. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
К тупику со стороны пути 1 (см. рисунок) подъехал поезд. Разрешается отцепить от поезда один или сразу несколько первых вагонов и завезти их в тупик (при желании, можно даже завезти в тупик сразу весь поезд). После этого часть из этих вагонов вывезти в сторону пути 2. После этого можно завезти в тупик еще несколько вагонов и снова часть оказавшихся вагонов вывезти в сторону пути 2. И так далее (так, что каждый вагон может лишь один раз заехать с пути 1 в тупик, а затем один раз выехать из тупика на путь 2). Заезжать в тупик с пути 2 или выезжать из тупика на путь 1 запрещается. Нельзя с пути 1 попасть на путь 2, не заезжая в тупик.

Известно, в каком порядке изначально идут вагоны поезда. Требуется с помощью указанных операций сделать так, чтобы вагоны поезда шли по порядку (сначала первый, потом второй и т.д., считая от головы поезда, едущего по пути 2 в сторону от тупика). Напишите программу, определяющую, можно ли это сделать.

Входные данные
Вводится число N — количество вагонов в поезде (1≤N≤100). Дальше идут номера вагонов в порядке от головы поезда, едущего по пути 1 в сторону тупика. Вагоны пронумерованы натуральными числами от 1 до N, каждое из которых встречается ровно один раз.

Выходные данные
Если сделать так, чтобы вагоны шли в порядке от 1 до N, считая от головы поезда, когда поезд поедет по пути 2 из тупика, можно, выведите сообщение YES, если это сделать нельзя, выведите NO.

Примеры

Входные данные Входные данные
Комментарии

3

3 2 1

YES

Надо весь поезд завезти в тупик, а затем целиком вывезти его на 2-й путь.

4

4 1 3 2

YES

Сначала надо в тупик завезти два вагона, один из которых оставит в тупике, а второй — вывезти на 2-й путь, после чего завезти в тупик еще два вагона и вывезти 3 вагона, стоящие в тупике, на 2-й путь

3

2 3 1

NO
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2021, 10:15
Ответы с готовыми решениями:

Сортировка вагонов
НАДО НАСТРОИТЬ ВВОД! У задача выглядит так: К тупику со стороны пути 1 (см. рисунок) подъехал поезд. Разрешается отцепить от поезда...

Сортировка выбором, Сортировка простыми вставками, Сортировка пузырьком, Сортировка слиянием, Быстрая сортировка Хоара
Имеется список товаров, хранящихся на базе. Каждая строка этого списка содержит: инвентарный номер товара; количество видов этого товара;...

Сортировка массива каждым из 3 способов (пузырьковая сортировка, сортировка выбором, сортировка вставкой)
1. Напишите программу, которая выполняет следующие функции: • заполнение элементов массива вещественными числами с заданной ...

15
6 / 6 / 0
Регистрация: 23.02.2021
Сообщений: 67
09.06.2021, 10:16  [ТС]
Вот фото
Миниатюры
Сортировка вагонов  
0
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
09.06.2021, 11:00
Уже было на форуме. Воспользуйтесь поиском.
0
6 / 6 / 0
Регистрация: 23.02.2021
Сообщений: 67
09.06.2021, 13:18  [ТС]
Я сам уже сделал
0
0 / 0 / 0
Регистрация: 21.04.2024
Сообщений: 17
29.04.2024, 14:18
uarts, можешь пожалуйста скинуть решение
0
1197 / 766 / 128
Регистрация: 10.03.2012
Сообщений: 4,956
29.04.2024, 14:32
Ди Малинин,
Сортировка вагонов
Сортировка вагонов
0
0 / 0 / 0
Регистрация: 21.04.2024
Сообщений: 17
29.04.2024, 14:37
Whitecolor, спасибо конечно, но сириус ничего не принимает. Можете пожалуйста скинуть хотя бы скрин принятого кода
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
29.04.2024, 20:01
Python
1
2
3
4
5
input('n = ')
*nums, = map(int, input('->').split())
while len(nums) > 2 and nums[0] in (min(nums), max(nums)) or nums[0] - nums[1] == 1:
    nums.pop(0)
print(['NO','YES'][len(nums) <= 2])
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
29.04.2024, 22:31
Цитата Сообщение от idealist Посмотреть сообщение
Python
1
2
3
4
5
input('n = ')
*nums, = map(int, input('->').split())
while len(nums) > 2 and nums[0] in (min(nums), max(nums)) or nums[0] - nums[1] == 1:
    nums.pop(0)
print(['NO','YES'][len(nums) <= 2])
Ошибку выдает:
n = 3
->3 2 1
Traceback (most recent call last):
File "Z:\p2646\Wagon sorting\Wagon sorting.py", line 50, in <module>
while len(nums) > 2 and nums[0] in (min(nums), max(nums)) or nums[0] - nums[1] == 1:
~~~~^^^
IndexError: list index out of range

Process finished with exit code 1. Опять, что ли дело в Питоне? У меня Python 3.12, а нужен какой?
1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
29.04.2024, 22:50
А, да, скобки неправильно поставил. Вот так правильнее:
Python
1
2
3
4
5
input('n = ')
*nums, = map(int, input('->').split())
while len(nums) > 2 and (nums[0] in (min(nums), max(nums)) or nums[0] - nums[1] == 1):
    nums.pop(0)
print(['NO','YES'][len(nums) <= 2])
1
0 / 0 / 0
Регистрация: 21.04.2024
Сообщений: 17
29.04.2024, 22:54
idealist, всё равно неверно, но твой ход мыслей немножко (не до конца) понятен
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
29.04.2024, 22:59
Цитата Сообщение от Ди Малинин Посмотреть сообщение
всё равно неверно
Ну, это пока не доказано!)) Если вы мне контрпример приведете, тогда поверю!
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
29.04.2024, 23:16
Цитата Сообщение от Ди Малинин Посмотреть сообщение
всё равно неверно, но твой ход мыслей немножко (не до конца) понятен
Контрпример в студию.
0
0 / 0 / 0
Регистрация: 21.04.2024
Сообщений: 17
30.04.2024, 19:55
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
l = int(input())
s = list(map(int, input().split()))
 
tup = [0] # тупик
tr2 = [0] # путь 2
 
for i in range(l):
    while tup[-1] == tr2[-1] + 1:
        tr2.append(tup[-1])
        tup.pop()
    if s[i] == tr2[-1] + 1:
        tr2.append(s[i])
    else:
        tup.append(s[i])
 
while tup[-1] == tr2[-1] + 1:
    tr2.append(tup[-1])
    tup.pop()
 
if tr2[-1] == l:
    print('YES')
else:
    print('NO')


Вот рабочий код
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
30.04.2024, 20:31
Ди Малинин, что это за кракозябры? Программу можете опубликовать?
0
0 / 0 / 0
Регистрация: 14.06.2024
Сообщений: 1
06.08.2024, 11:11
Ди Малинин, Можете пожалуйста Отправить код с отступами

Добавлено через 3 минуты
Ди Малинин, Спасибо за код сам разобрался с отступами
Вот код с отступами
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
l = int(input())
s = list(map(int, input().split()))
 
tup = [0] # тупик
tr2 = [0] # путь 2
 
for i in range(l):
    while tup[-1] == tr2[-1] + 1:
        tr2.append(tup[-1])
        tup.pop()
    if s[i] == tr2[-1] + 1:
        tr2.append(s[i])
    else:
        tup.append(s[i])
 
while tup[-1] == tr2[-1] + 1:
    tr2.append(tup[-1])
    tup.pop()
 
if tr2[-1] == l:
    print('YES')
else:
    print('NO')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.08.2024, 11:11
Помогаю со студенческими работами здесь

Сортировка вагонов
Ограничение по времени работы программы: 1 секунда К тупику со стороны пути 1 (см. рисунок) подъехал поезд. Разрешается отцепить от...

Сортировка Вагонов
Прошу помощи знатоков в решении задачи на питоне: Сортировка вагонов К тупику со стороны пути 1 (см. рисунок) подъехал поезд....

Дизайн вагонов
Всем привет! Можете помочь вот с такой задачкой: Вагоны новой кольцевой железной дороги было предложено расписать N дизайнерам. Каждый...

Сколько всего вагонов в электричке
Вагоны в электричке пронумерованы натуральными числами, начиная с 1 (при этом иногда вагоны нумеруются от «головы» поезда, а иногда – с...

Создать программу для автоматического считывания номеров вагонов
Добрый день, уважаемые сайберфорумчане. Мне нужна ваша помощь как никогда! Я пишу дипломную работу по теме &quot;Система автоматического...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru