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

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

17.10.2020, 04:51. Показов 12014. Ответов 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
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
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
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
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
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru