|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
||||||
Определить номер тупика, куда прибудет электричка09.06.2019, 22:47. Показов 6876. Ответов 12
Метки нет (Все метки)
Здравствуйте. К сожалению моё решение не проходит по времени. Кто-нибудь знает как можно оптимизировать?
Задача На вокзале есть K тупиков, куда прибывают электрички. Этот вокзал является их конечной станцией, поэтому электрички, прибыв, некоторое время стоят на вокзале, а потом отправляются в новый рейс (в ту сторону, откуда прибыли). Дано расписание движения электричек, в котором для каждой электрички указано время ее прибытия, а также время отправления в следующий рейс. Электрички в расписании упорядочены по времени прибытия. Поскольку вокзал — конечная станция, то электричка может стоять на нем довольно долго, в частности, электричка, которая прибывает раньше другой, отправляться обратно может значительно позднее. Тупики пронумерованы числами от 1 до K. Когда электричка прибывает, ее ставят в свободный тупик с минимальным номером. При этом если электричка из какого-то тупика отправилась в момент времени X, то электричку, которая прибывает в момент времени X, в этот тупик ставить нельзя, а электричку, прибывающую в момент X+1 — можно. Напишите программу, которая по данному расписанию для каждой электрички определит номер тупика, куда прибудет эта электричка. Формат ввода Во входном файле записаны число K — количество тупиков и число N — количество электропоездов (1 ≤ K ≤ 500000, 1 ≤ N ≤ 500000). Далее идет N строк, в каждой из которых записано по 2 числа: время прибытия и время отправления электрички. Время задается натуральным числом, не превышающим 109. Никакие две электрички не прибывают в одно и то же время. Но при этом несколько электричек могут отправляться в одно и то же время. Также возможно, что какая-нибудь электричка (или даже несколько) отправляются в момент прибытия какой-нибудь другой электрички. Время отправления каждой электрички строго больше времени ее прибытия. Все электрички упорядочены по времени прибытия. Считается, что в нулевой момент времени все тупики на вокзале свободны. Формат вывода В выходной файл выведите N чисел — по одному для каждой электрички: номер тупика, куда прибудет соответствующая электричка. Если тупиков не достаточно, чтобы организовать движение электричек согласно расписанию, в выходной файл должно быть выведено два числа: первое должно равняться 0 (нулю), а второе содержать номер первой из электричек, которая не сможет прибыть на вокзал. Ввод: 2 3 1 3 2 6 4 5 Выход: 1 2 1 Моё решение:
0
|
||||||
| 09.06.2019, 22:47 | |
|
Ответы с готовыми решениями:
12
Задача Электричка Задача с ветвлениями. Электричка |
|
3 / 2 / 1
Регистрация: 02.12.2018
Сообщений: 20
|
|||||
| 10.06.2019, 06:59 | |||||
|
Вы уверены, что условие верно?
0
|
|||||
|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
|
| 10.06.2019, 08:00 [ТС] | |
|
Первая строка ввода это - [Во входном файле записаны число K — количество тупиков и число N — количество электропоездов (1 ≤ K ≤ 500000, 1 ≤ N ≤ 500000)]
По поводу времени не знаю, но здесь указано что кол-во тупиков и поездов от 1 до 500000
0
|
|
|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
|
| 13.06.2019, 12:58 [ТС] | |
|
Проблема актуальна.
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 13.06.2019, 13:25 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
|||||||||||
| 13.06.2019, 13:36 [ТС] | |||||||||||
|
Я пробовал реализовать следующую идею.
Возникли проблемы с памятью c использованием указателей.. В общем беда. Добавлено через 2 минуты Мне кажется что дело в цикле. Он постоянно бегает и много времени берет. Я вот что пробовал сделать, но сегодня ошибки появились.
0
|
|||||||||||
|
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 242
|
||||||
| 13.06.2019, 13:49 | ||||||
|
На твоем тесте работает
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
|
| 13.06.2019, 14:01 [ТС] | |
|
Input:
1 2 2 5 5 6 Output: 0 2
0
|
|
|
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 242
|
|||||||
| 13.06.2019, 14:07 | |||||||
Сообщение было отмечено liefasm как решение
Решение
1
|
|||||||
|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
||||||
| 13.06.2019, 14:14 [ТС] | ||||||
|
К сожалению это решение не проходит по времени.. У меня была такая идея но я не могу её реализовать из-за ошибок с памятью.
Есть структура:
В дальнейшем после заполнения нужно отсортировать вектор Events по возрастанию. В дальнейшем основной алгоритм проходит по этому вектору и выполняет определенные действия (добавить в тупик, изъять из тупика и прочее). Если поезд был убран из тупика, он индекс (номер тупика в котором он находился) попадается в вектор freelocks, который постоянно сортируется по возрастанию и в случае добавления нового поезда (если freelocks не пуст) - поезд попадает на тупик получаемый путём исполнения freelocks.back() и потом для удаления тупика из списка свободных тупиков - freelocks.pop_back(). У меня возникли проблемы с munmap_chunk(): invalid pointer: 0x0000000000a85290 ***... Добавлено через 3 минуты Всё прошло. Спасибо.. Я вижу Вы использовали различные возможности STL. К сожалению я не имею такой багаж познания в STL и использовал какие-то тупые идеи ;(
0
|
||||||
|
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 242
|
|
| 13.06.2019, 14:15 | |
|
1
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||
| 13.06.2019, 15:09 | ||||||
|
liefasm, через map попробуй(не отлаживал)
1
|
||||||
|
0 / 0 / 0
Регистрация: 20.04.2017
Сообщений: 15
|
|
| 13.06.2019, 15:13 [ТС] | |
|
Всё давно уже прошло. Всем спасибо.
0
|
|
| 13.06.2019, 15:13 | |
|
Помогаю со студенческими работами здесь
13
Найти куда вставлять номер своего телефона
Развести поезда на одноколейной дороге с помощью тупика, вмещающего 1 вагон
Дан четырёхзначный номер года в форме строки. Определить номер столетия Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|