{ "seed": 42, "correct": 60, "total": 60, "per_domain": { "net": { "total": 14, "ok": 14 }, "linux": { "total": 14, "ok": 14 }, "c_cpp": { "total": 12, "ok": 12 }, "algo": { "total": 20, "ok": 20 } }, "details": [ { "n": 1, "domain": "net", "q": "Какое поле IPv4-заголовка уменьшается на 1 на каждом маршрутизаторе?", "answer": "ttl", "ok": true, "correct": "TTL" }, { "n": 2, "domain": "linux", "q": "Сложность select против epoll на большом числе дескрипторов?", "answer": "select o(n), epoll o(1)", "ok": true, "correct": "select — O(n) по всем, epoll — O(1) на готовое событие" }, { "n": 3, "domain": "c_cpp", "q": "Что делает const после сигнатуры метода?", "answer": "this const", "ok": true, "correct": "делает this const, запрещает менять поля" }, { "n": 4, "domain": "algo", "q": "Как найти цикл в связном списке за O(1) дополнительной памяти?", "answer": "флойд", "ok": true, "correct": "алгоритм Флойда: черепаха и заяц" }, { "n": 5, "domain": "algo", "q": "Насколько быстро работают операции union-find с эвристиками?", "answer": "почти o(1)", "ok": true, "correct": "почти O(1), O(α(n))" }, { "n": 6, "domain": "linux", "q": "Что делает fork()?", "answer": "создаёт новый процесс", "ok": true, "correct": "создаёт новый процесс (свой PID, COW-копия памяти)" }, { "n": 7, "domain": "c_cpp", "q": "Определён ли стандартом порядок вычисления аргументов f(a(), b())?", "answer": "нет", "ok": true, "correct": "нет, порядок не задан" }, { "n": 8, "domain": "c_cpp", "q": "Правило трёх/пяти — в чём суть?", "answer": "деструктор + копирование + перемещение", "ok": true, "correct": "владеющий ресурсом класс задаёт деструктор, копирование и перемещение" }, { "n": 9, "domain": "linux", "q": "Сколько байт в заголовке TCP без опций?", "answer": "20", "ok": true, "correct": "20" }, { "n": 10, "domain": "algo", "q": "Структура для поиска слов по префиксу за O(len)?", "answer": "trie", "ok": true, "correct": "trie (префиксное дерево)" }, { "n": 11, "domain": "algo", "q": "Средняя сложность quicksort и mergesort?", "answer": "o(n log n)", "ok": true, "correct": "O(n log n)" }, { "n": 12, "domain": "net", "q": "Сколько адресов узлов в подсети /26?", "answer": "62", "ok": true, "correct": "62" }, { "n": 13, "domain": "linux", "q": "Что делает ulimit -n?", "answer": "лимит дескрипторов", "ok": true, "correct": "показывает/меняет лимит открытых файловых дескрипторов" }, { "n": 14, "domain": "net", "q": "По какому протоколу и порту работает DNS?", "answer": "udp 53", "ok": true, "correct": "UDP/53 (при больших ответах TCP/53)" }, { "n": 15, "domain": "linux", "q": "Что такое TID (Thread ID) в /proc?", "answer": "номер задачи", "ok": true, "correct": "номер задачи в /proc//task/" }, { "n": 16, "domain": "c_cpp", "q": "Что такое UB?", "answer": "undefined behavior", "ok": true, "correct": "undefined behavior: стандарт не накладывает требований" }, { "n": 17, "domain": "algo", "q": "При каком условии применим алгоритм Дейкстры?", "answer": "неотрицательные веса", "ok": true, "correct": "веса рёбер неотрицательны" }, { "n": 18, "domain": "linux", "q": "Что происходит со страницами памяти при fork()?", "answer": "cow", "ok": true, "correct": "copy-on-write: копируются при первой записи" }, { "n": 19, "domain": "c_cpp", "q": "Что делает std::move сам по себе?", "answer": "static_cast к rvalue", "ok": true, "correct": "static_cast к rvalue-ссылке; перемещение делает конструктор/присваивание" }, { "n": 20, "domain": "algo", "q": "Чем заменить Дейкстру при отрицательных рёбрах?", "answer": "беллман-форд", "ok": true, "correct": "Беллман–Форд" }, { "n": 21, "domain": "linux", "q": "Что означает errno EAGAIN на неблокирующем сокете?", "answer": "повторить позже", "ok": true, "correct": "данных сейчас нет, повторить позже" }, { "n": 22, "domain": "algo", "q": "Для какого графа возможна топологическая сортировка?", "answer": "dag", "ok": true, "correct": "для ациклического (DAG)" }, { "n": 23, "domain": "c_cpp", "q": "Чем unique_ptr отличается от shared_ptr?", "answer": "единственный владелец", "ok": true, "correct": "unique_ptr — единственный владелец без счётчика; shared_ptr считает ссылки" }, { "n": 24, "domain": "linux", "q": "Какой механизм держит десятки тысяч соединений в одном потоке?", "answer": "epoll", "ok": true, "correct": "epoll" }, { "n": 25, "domain": "net", "q": "Размер MTU Ethernet по умолчанию?", "answer": "1500", "ok": true, "correct": "1500 байт" }, { "n": 26, "domain": "linux", "q": "Что даёт mmap() на файл?", "answer": "отображает файл в память", "ok": true, "correct": "отображает файл в память; страницы подгружаются по обращению" }, { "n": 27, "domain": "algo", "q": "Средняя сложность поиска в хеш-таблице при разумной загрузке?", "answer": "o(1)", "ok": true, "correct": "амортизированное O(1)" }, { "n": 28, "domain": "net", "q": "Сколько байт в минимальном IPv4-заголовке?", "answer": "20", "ok": true, "correct": "20" }, { "n": 29, "domain": "linux", "q": "Зачем родителю waitpid()?", "answer": "забрать код возврата", "ok": true, "correct": "чтобы забрать код возврата и не оставлять зомби" }, { "n": 30, "domain": "c_cpp", "q": "Класс владеет ресурсом и имеет деструктор, копирование не объявлено. Что будет?", "answer": "двойное освобождение", "ok": true, "correct": "сгенерируется поверхностное копирование — двойное освобождение" }, { "n": 31, "domain": "algo", "q": "Какова нижняя оценка сложности сортировки сравнениями?", "answer": "o(n log n)", "ok": true, "correct": "O(n log n)" }, { "n": 32, "domain": "linux", "q": "Код возврата 139 — что это?", "answer": "sigsegv", "ok": true, "correct": "SIGSEGV (128+11) — падение по памяти" }, { "n": 33, "domain": "net", "q": "Правильная последовательность установки TCP-соединения?", "answer": "syn, syn-ack, ack", "ok": true, "correct": "SYN -> SYN-ACK -> ACK" }, { "n": 34, "domain": "linux", "q": "Что такое процесс-зомби?", "answer": "завершившийся процесс без wait", "ok": true, "correct": "завершившийся процесс, чья запись ждёт wait/waitpid" }, { "n": 35, "domain": "c_cpp", "q": "Чему равен sizeof(struct S { char a; int b; char c; }) на x86-64 без pack?", "answer": "12", "ok": true, "correct": "12 (паддинг до выравнивания)" }, { "n": 36, "domain": "algo", "q": "BFS или DFS даёт кратчайший путь в невзвешенном графе?", "answer": "bfs", "ok": true, "correct": "BFS" }, { "n": 37, "domain": "net", "q": "Сколько байт добавляет VLAN-тег 802.1Q?", "answer": "4", "ok": true, "correct": "4" }, { "n": 38, "domain": "net", "q": "На каком уровне OSI работает обычный коммутатор?", "answer": "l2", "ok": true, "correct": "L2 (канальный)" }, { "n": 39, "domain": "linux", "q": "Сигнал с номером 15?", "answer": "sigterm", "ok": true, "correct": "SIGTERM — запрос на завершение" }, { "n": 40, "domain": "c_cpp", "q": "Зачем нужен виртуальный деструктор у базового класса?", "answer": "деструктор наследника не вызовется", "ok": true, "correct": "иначе delete через Base* — UB, деструктор наследника не вызовется" }, { "n": 41, "domain": "algo", "q": "Сложность Дейкстры на priority_queue (двоичная куча)?", "answer": "o((v+e) log v)", "ok": true, "correct": "O((V+E) log V)" }, { "n": 42, "domain": "net", "q": "Что означает маска /30 в адресах?", "answer": "4 адреса, 2 узла", "ok": true, "correct": "4 адреса: сеть, 2 узла, broadcast" }, { "n": 43, "domain": "c_cpp", "q": "Что проверяет UBSAN?", "answer": "undefined behavior", "ok": true, "correct": "неопределённое поведение: overflow, сдвиги, выравнивание" }, { "n": 44, "domain": "algo", "q": "Сколько сравнений в худшем случае у бинарного поиска в массиве из 1 000 000 элементов?", "answer": "20", "ok": true, "correct": "20" }, { "n": 45, "domain": "linux", "q": "Код возврата 137 — что это?", "answer": "sigkill", "ok": true, "correct": "SIGKILL (128+9) — убит" }, { "n": 46, "domain": "net", "q": "Сколько адресов узлов в подсети /24?", "answer": "254", "ok": true, "correct": "254" }, { "n": 47, "domain": "algo", "q": "Сложность построения кучи (heapify) из произвольного массива?", "answer": "o(n)", "ok": true, "correct": "O(n)" }, { "n": 48, "domain": "net", "q": "Сколько байт в Ethernet-заголовке без VLAN?", "answer": "14", "ok": true, "correct": "14" }, { "n": 49, "domain": "c_cpp", "q": "Чем new отличается от malloc?", "answer": "вызывает конструктор", "ok": true, "correct": "new вызывает конструктор и возвращает типизированный указатель" }, { "n": 50, "domain": "net", "q": "На каком уровне OSI работает маршрутизатор?", "answer": "l3", "ok": true, "correct": "L3 (сетевой)" }, { "n": 51, "domain": "algo", "q": "Сложность вставки одного элемента в кучу?", "answer": "o(log n)", "ok": true, "correct": "O(log n)" }, { "n": 52, "domain": "c_cpp", "q": "Что проверяет ASAN?", "answer": "выходы за границы", "ok": true, "correct": "выходы за границы, use-after-free, утечки" }, { "n": 53, "domain": "algo", "q": "Худшая сложность quicksort?", "answer": "o(n^2)", "ok": true, "correct": "O(n²)" }, { "n": 54, "domain": "algo", "q": "За какую сложность ищется НВП (LIS) в оптимальном решении?", "answer": "o(n log n)", "ok": true, "correct": "O(n log n)" }, { "n": 55, "domain": "algo", "q": "Сложность задачи о рюкзаке 0/1 через ДП по вместимости?", "answer": "o(n*w)", "ok": true, "correct": "O(n * W)" }, { "n": 56, "domain": "algo", "q": "Какова сложность по памяти рекурсивного DFS в графе в худшем случае?", "answer": "o(v)", "ok": true, "correct": "O(V) — глубина стека рекурсии" }, { "n": 57, "domain": "net", "q": "Что делает ICMP Time Exceeded?", "answer": "ttl истёк", "ok": true, "correct": "сообщает, что TTL истёк (используется в traceroute)" }, { "n": 58, "domain": "algo", "q": "Худшая сложность поиска в хеш-таблице (все ключи в одну корзину)?", "answer": "o(n)", "ok": true, "correct": "O(n)" }, { "n": 59, "domain": "algo", "q": "Какая сортировка устойчивая: merge, quick, heap или selection?", "answer": "merge", "ok": true, "correct": "merge sort" }, { "n": 60, "domain": "net", "q": "Что делает ARP?", "answer": "mac по ip", "ok": true, "correct": "находит MAC по IP в локальном сегменте" } ] }