|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 4
|
||||||
Задача "Система регистрации" из codeforces16.05.2020, 03:56. Показов 10608. Ответов 10
При отправки задачи моё решение проваливается на седьмом проходе и жалуется, что превышено ограничение времени.
Помогите пожалуйста оптимизировать или исправить решение. Текст задачи: В скором времени в Берляндии откроется новая почтовая служба "Берляндеск". Администрация сайта хочет запустить свой проект как можно быстрее, поэтому они попросили Вас о помощи. Вам предлагается реализовать прототип системы регистрации сайта. Система должна работать по следующему принципу. Каждый раз, когда новый пользователь хочет зарегистрироваться, он посылает системе запрос name со своим именем. Если данное имя не содержится в базе данных системы, то оно заносится туда и пользователю возвращается ответ OK, подтверждающий успешную регистрацию. Если же на сайте уже присутствует пользователь с именем name, то система формирует новое имя и выдает его пользователю в качестве подсказки, при этом подсказка также добавляется в базу данных. Новое имя формируется по следующему правилу. К name последовательно приписываются числа, начиная с единицы (name1, name2, ...), и среди них находят такое наименьшее i, что name i не содержится в базе данных сайта. Входные данные В первой строке входных данных задано число n (1 ≤ n ≤ 10^5). Следующие n строк содержат запросы к системе. Каждый запрос представляет собой непустую строку длиной не более 32 символов, состоящую только из строчных букв латинского алфавита. Выходные данные В выходных данных должно содержаться n строк — ответы системы на запросы: ОК в случае успешной регистрации, или подсказку с новым именем, если запрашиваемое уже занято. входные данные 4 abacaba acaba abacaba acab выходные данные OK OK abacaba1 OK Моё решение:
0
|
||||||
| 16.05.2020, 03:56 | |
|
Ответы с готовыми решениями:
10
Задача с Codeforces Задача с Codeforces, уровень A Задача А. Взята с codeforces |
|
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
|
||||||
| 16.05.2020, 05:24 | ||||||
|
frick_, а почему не использовать in в функции?
и зачем вы в ней возвращаете True?
Добавлено через 16 минут проверил, падает на 5 тесте ![]() ну да ладно, я сделал всё что мог
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 4
|
|
| 16.05.2020, 05:45 [ТС] | |
|
Заменил .get() на in и убрал return True и мои 100000 имён теперь выводит быстрее чем за 5 сек (как и нужно в задаче), но на сайте всё равно пишет "Превышено ограничение времени на тесте 7"
0
|
|
|
Status 418
|
||||||
| 16.05.2020, 08:24 | ||||||
Сообщение было отмечено frick_ как решение
Решение
если я правильно понял:
2
|
||||||
|
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
|
|
| 16.05.2020, 09:54 | |
|
eaa, сдается мне что вы забыли добавлять нового пользователя.
5 abacaba acaba abacaba acab abacaba1 результат: {'abacaba': 1, 'acaba': 0, 'acab ': 0, 'abacaba1': 0} один пользователь пропал, кажется должно быть {'abacaba': 1, 'acaba': 0, 'acab ': 0, 'abacaba1': 1, 'abacaba2': 0}
0
|
|
|
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,307
|
|||
| 16.05.2020, 17:21 | |||
|
eaa,
5 abacaba acaba abacaba acab abacaba OK OK abacaba1 OK abacaba2 {'abacaba': 2, 'acaba': 0, 'acab': 0} но в базе должны быть {'abacaba': 1, 'acaba': 0, 'acab ': 0, 'abacaba1': 1, 'abacaba2': 0} мы же должны добавить нового пользователя после подсказки. то есть если уже есть 'abacaba' то новый будет 'abacaba1' и при вводе 'abacaba' должен быть сформирован новый пользователь 'abacaba2' так как 'abacaba1' уже есть.
0
|
|||
|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 4
|
||||||
| 16.05.2020, 18:39 [ТС] | ||||||
|
Semen-Semenich, по логике задачи ты прав, и, кстати говоря, мой код именно что добавляет подсказку в бд, но с точки зрения нужного вывода код eaa работает быстрее. На самом деле обидно то, что у меня на компьютере задача всё-таки даже со 100000 слов выполняется за ~4.7 сек, а сайт её так и не принял.
Прикрепляю свои 100000 имён и свой окончательный код
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 4
|
|
| 16.05.2020, 18:45 [ТС] | |
|
вот мои имена
0
|
|
|
Status 418
|
|
| 17.05.2020, 06:13 | |
|
frick_, причем тут вывод? Сложность своего алгоритма посчитайте.
Добавлено через 1 минуту введите 100000 одинаковых имен из 32 символов.
0
|
|
| 17.05.2020, 06:13 | |
|
Помогаю со студенческими работами здесь
11
Codeforces задача A. Way Too Long Words Нахождение суммы остатков (задача с Codeforces) Задача "Светофоры" с codeforces. Код слишком медленный Задача с codeforces "Бьем чудовище" Задача с codeforces "Беру-такси" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|