Коллайдос
kaf42Вкратце — идея в том, чтобы искать строчки, которые дают один и тот же хеш при хешировании стандартным C++-овым std::hash<std::string>{}.
Участники предоставляют ввод для программы, которая считывает не более 30 тысяч строк вида
<логин> <пароль>
На логины и пароли есть ограничения — не длиннее 15 символов, а также они должны состоять только из английских букв и еще пары символов. Далее все логины вставляются в один хешсет, а все пароли в другой. Требуется, чтобы программа работала дольше 30 секунд. При этом при обычных данных она завершается за доли секунды.
Подвох в том, что если при вставке элемента в хешсет возникает коллизия, то, в худшем случае, вставка производится гораздо дольше. А этот худший случай как раз достигается тогда, когда у всех элементов один и тот же хеш. Таким образом, надо найти алгоритм, которым строчки хешируются, разобраться в том, как подбирать их так, чтобы у всех был одинаковый хеш, и нагенерировать пейлоад из 30000 таких строк. Вы великолепны!