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

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

09.06.2021, 10:15. Показов 2650. Ответов 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
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
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
1187 / 757 / 127
Регистрация: 10.03.2012
Сообщений: 4,868
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,707
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,321
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,707
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,707
29.04.2024, 22:59
Цитата Сообщение от Ди Малинин Посмотреть сообщение
всё равно неверно
Ну, это пока не доказано!)) Если вы мне контрпример приведете, тогда поверю!
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,321
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,707
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
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru