|
1 / 1 / 0
Регистрация: 09.09.2018
Сообщений: 5
|
|||||||||||
Дайте совет по оптимизации задачи27.04.2019, 14:08. Показов 2853. Ответов 5
Метки нет (Все метки)
Студенты и преподаватели очень любят столовую. Так как посетителей много, в столовой часто образутся очень длинные очереди. Студенты при посещении столовой должны вставать в конец очереди. Преподаватели встают ровно в ее середину, причем при нечетной длине очереди они встают сразу за центром. Попросили вас написать программу, которая бы отслеживала правильное расположение посетителей в очереди.
Формат ввода В первой строке входных данный записано число N (1 ≤ N ≤ 106) - количество запросов к программе. Следующие N строк содержат описание запросов в формате: • "+ i" - студент с номером i (1 ≤ i ≤ N) встает в конец очереди. • "* i" - преподаватель с номером i встает в середину очереди. • "-" - первый посетитель из очереди обслуживается работниками столовой. Гарантируется, что на момент такого запроса очередь не пуста. Формат вывода Для каждого запроса типа "-" программа должна вывести номер посетителя, который должен быть обслужен работниками столовой. Пример: Ввод: 12 + 1 + 2 * 3 - * 4 + 5 - * 6 - - - - Вывод 1 3 4 2 6 5 Дело в том, что если кол-во людей привышает 400000, то время выполнение программы дольше секунды.. Вот моё решение. Оно конечно тривиальное, но у меня нет идей в её оптимизации.
Добавлено через 21 минуту Переписал листинг. Выше был старый.
0
|
|||||||||||
| 27.04.2019, 14:08 | |
|
Ответы с готовыми решениями:
5
Дайте совет по оптимизации
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
||||||
| 28.04.2019, 07:57 | ||||||
Сообщение было отмечено LanVanDance как решение
Решение
Ну не уверен, что оптимально(зависит от размера очереди и частоты появления преподавателей), но можно попробовать с двумя очередями:
3
|
||||||
|
Комп_Оратор)
|
||||||
| 28.04.2019, 19:36 | ||||||
|
Может со списком побыстрее получится, хотя выглядит монструозненько:
2
|
||||||
|
1 / 1 / 0
Регистрация: 09.09.2018
Сообщений: 5
|
|
| 01.05.2019, 01:01 [ТС] | |
|
Ваш код отлично проходит тесты, но.. В одном тесте происходит Runtime Error. Причина неизвестна, буду просить логи..
Не можете предположить причину данного поведения? Полные логи входа получить не могу, слишком много. Из того что показано - всё проходит без ошибок.
0
|
|
|
Комп_Оратор)
|
|||
| 01.05.2019, 09:21 | |||
|
Если такое объяснение не исчерпывает вашего интереса, покажите сообщение от системы. Можно брэйк пойнтами прощупать место где это происходит и попробовать захватить данный участок в try блок и отловить. Добавлено через 13 минут LanVanDance, сейчас уже не вспомнить, - надо снова погрузиться, а времени нет. Проверьте инкремент итератора середины. Когда он указывает на конец этого делать не стоит, но такой проверки нет. то есть, при входе в блок она есть но перед инкрементацией её нет, а там есть действия в блоке, которые могут (возможно) сделать такую операцию опасной..
Поисследуйте это и может быть этого хватит.
0
|
|||
| 01.05.2019, 09:21 | |
|
Помогаю со студенческими работами здесь
6
Профессионалы программирования дайте совет Разрженные матрицы дайте совет Дайте совет по продолжению обучения Дайте совет по изучению программирования Среда разработки. Дайте совет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|