|
0 / 0 / 0
Регистрация: 16.05.2020
Сообщений: 4
|
||||||
Задача "Система регистрации" из codeforces16.05.2020, 03:56. Показов 10576. Ответов 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
|
||||||
|
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
|
|
| 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
|
|
|
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
|
|||
| 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 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|