Задача месяца, ступень 06 Превью
Предварительный показ. Это декабрьская задача месяца, открытая заранее, чтобы вы могли её попробовать. Предварительный показ длится один месяц, со своими графами и своей таблицей. 1-го числа таблица и все таймеры начинаются с нуля, и ничего не переносится. Декабрь начнётся с новых графов и пустой таблицы.
- Вершин: 1000000, номера от 0 до 999999.
- Каждая пара вершин соединена с вероятностью p = 1/2, независимо от других пар.
Правило. Ваш граф задан ключом K из 64 шестнадцатеричных цифр. Вершины i и j, где i < j, соединены, если первый бит SHA-256(K, i, j) равен 1. Здесь K берётся как его 32 байта, а i и j — как 8-байтовые числа в порядке big-endian. В файле ключ записан в строке k.
Правило в виде кода, для свободного использования (CC0): C, C++, JavaScript. Программу можно написать до того, как вы покажете свой ключ. Таймер запускается только тогда.
Ваш ответ. Все n вершин в порядке цикла, каждая ровно один раз, через пробелы или переводы строк. Каждая вершина должна быть соединена со следующей, а последняя — с первой. Принимается любой такой цикл. Введите его, загрузите текстовый файл либо .gz или .tar.gz с одним этим файлом.