|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2019, 18:11 | #1 |
Новичок
Джуниор
Регистрация: 28.10.2019
Сообщений: 1
|
Не могу решить вопрос из Codeforces! Помогите пожалуста
Можете объяснить как сделать это я попробовал создать массив String и сравнить таким образом:
for (int i=0; i<array.length; i++){ if (array[i] == array[i+1} // например но не получается((( В скором времени в Берляндии откроется новая почтовая служба "Берляндеск". Администрация сайта хочет запустить свой проект как можно быстрее, поэтому они попросили Вас о помощи. Вам предлагается реализовать прототип системы регистрации сайта. Система должна работать по следующему принципу. Каждый раз, когда новый пользователь хочет зарегистрироваться, он посылает системе запрос name со своим именем. Если данное имя не содержится в базе данных системы, то оно заносится туда и пользователю возвращается ответ OK, подтверждающий успешную регистрацию. Если же на сайте уже присутствует пользователь с именем name, то система формирует новое имя и выдает его пользователю в качестве подсказки, при этом подсказка также добавляется в базу данных. Новое имя формируется по следующему правилу. К name последовательно приписываются числа, начиная с единицы (name1, name2, ...), и среди них находят такое наименьшее i, что namei не содержится в базе данных сайта. Входные данные В первой строке входных данных задано число n (1 ≤ n ≤ 105). Следующие n строк содержат запросы к системе. Каждый запрос представляет собой непустую строку длиной не более 32 символов, состоящую только из строчных букв латинского алфавита. Выходные данные В выходных данных должно содержаться n строк — ответы системы на запросы: ОК в случае успешной регистрации, или подсказку с новым именем, если запрашиваемое уже занято. Примеры: входные данные: 4 abacaba acaba abacaba acab выходные данные: OK OK abacaba1 OK входные данные: 6 first first second second third third выходные данные: OK first1 OK second1 OK third1 |
04.02.2020, 00:11 | #2 |
Пользователь
Регистрация: 23.04.2016
Сообщений: 75
|
Используй HashSet<String> для хранения строк. Сможешь проверять, существует ли передаваемая строка за О(1). Если не существует, просто закидывай туда. Если существует, проверяй в цикле i=1..105, конкатенируя каждый раз строку и счетчик, тем же алгоритмом. Ограничения маленькие, должно зайти прямо так
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите пожалуста. Вопрос про видео память | роман333 | Компьютерное железо | 1 | 26.11.2017 17:27 |
Помогите решить задачки на Паскале. Пожалуста, Очень срочно!!! | VADOS2009-1 | Помощь студентам | 3 | 02.06.2009 23:32 |
Помогите пожалуста решить задачку, заранее спасибо | Rakfeller | Помощь студентам | 3 | 22.05.2009 20:07 |