С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 13

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

17.10.2020, 04:51. Показов 11921. Ответов 4

Студворк — интернет-сервис помощи студентам
Прошу помощи знатоков в решении задачи на питоне:

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

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

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

если нужно завезти с пути 1 в тупик K вагонов, должно быть выведено сначала число 1, а затем — число K (K≥1),
если нужно вывезти из тупика на второй путь K вагонов, должно быть выведено сначала число 2, а затем — число K (K≥1).
Если возможно несколько последовательностей действий, приводящих к нужному результату, выведите любую из них.

Если выстроить вагоны по порядку невозможно, выведите одно число 0.

Примеры:


Рисунок


Вот мое решение, которое система не принимает
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
l = int(input())
tr1 = list(map(int, input().split())) #путь 1
 
tup = [0] # тупик
tr2 = [0] # путь 2
 
k1 = 0
k2 = 0
 
k1m = []
k2m = []
 
 
def form_result():
    result = ""
    for i in range(len(k1m)):
        result = result + "1 " + str(k1m[i]) + "\n" + "2 " + str(k2m[i])
        if i != (len(k1m)-1):
            result = result + "\n"
    return result
 
for i in range(l):
    while tup[-1] == tr2[-1] + 1:
        tr2.append(tup[-1])
        k2=k2+1
        tup.pop()
 
    if tr1[i] == tr2[-1] + 1:
        tr2.append(tr1[i])
        k1=k1+1
        k2=k2+1
 
        k1m.append(k1)
        k2m.append(k2)
        k1 = 0
        k2 = 0
    else:
        tup.append(tr1[i])
        k1=k1+1
 
 while tup[-1] == tr2[-1] + 1:
    tr2.append(tup[-1])
    tup.pop()
    k2m[-1] = k2m[-1] + 1
 
if tr2[-1] == l:
    print(form_result())
else:
    print(0)
Заранее спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2020, 04:51
Ответы с готовыми решениями:

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

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

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

4
17.10.2020, 08:27

Не по теме:

GlebJavaStarter, скажи - чем ты руководствовался, создавая тему по питону в разделе джавы?

0
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
17.10.2020, 09:30
Лучший ответ Сообщение было отмечено GlebJavaStarter как решение

Решение

GlebJavaStarter,
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
27
28
29
30
31
32
33
34
35
n = int(input())
k = list(map(int, input().split()))
d = []
p = []
i = 1
m=0
while i < n+1:
    j=0
    jj=0
    while k[j] != i:
        d.append(k[j])
        j += 1
    d.append(k[j])
    p.append([1,j+1])
    del k[:j+1]
    if d[::-1] == sorted(d):
        j = 1
        kk = d.pop()
        if len(d) != 0:
            while kk +1 == d[-1] :
                j += 1
                kk = d.pop()
                if len(d) == 0:
                    break
                if kk == n:
                    break
        p.append([2,j])
    else:
        print(0)
        m=1
        i = n
    i += j
if m != 1:
    for i in range(len(p)):
        print(*p[i])
0
0 / 0 / 0
Регистрация: 15.10.2018
Сообщений: 13
17.10.2020, 13:30  [ТС]
Только там в основном сижу, на автомате как-то)

Добавлено через 6 минут
Gdez, большое спасибо!
Но не мог бы ты пожалуйста объяснить что означают двоеточия при указании индексов в строках:
Python
1
2
del k[:j+1]
if d[::-1] == sorted(d):
0
Эксперт Python
8848 / 4500 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
17.10.2020, 13:35
GlebJavaStarter, list[начало : конец : шаг]

Добавлено через 2 минуты
k[:j+1] -> с начала по индекс "j"
d[::-1] -> разворот (читать с конца до начала, справа налево
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2020, 13:35
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Расчёт переходных процессов в цепи постоянного тока
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