Б
Боря программирует
17.07.2026 11:00 · 👁 12.4K
Midnight Code Cup 2026 Finals
Давно ничего не писал — надо исправляться. Недавно в Белграде прошёл финал 24-часового соревнования Midnight Code Cup, в организации которого я участвовал. На соревновании мы разрешаем пользоваться AI, поэтому в этом году пришлось постараться, чтобы задачи не решались одним промптом. Условия можно почитать здесь: https://2026.midnightcodecup.org/problems/
Для некоторых задач открыто дорешивание, так что, если у вас есть свободное время, предлагаю попробовать — должно быть интересно! К сожалению, мы боимся большой нагрузки, поэтому дорешивать задачи можно только при наличии рейтингового аккаунта на Codeforces.
Больше всего мне нравятся следующие задачи:
https://2026.midnightcodecup.org/problems/G/ — нужно за 10 минут придумать как можно более короткий промпт для LLM, чтобы она написала решение простой задачи.
https://2026.midnightcodecup.org/problems/E/ — нужно управлять космическим кораблём, решать логические задачи и находить ключи. Интересно, когда агенты научатся решать такие задачи так же эффективно, как люди?
https://2026.midnightcodecup.org/problems/K/ — на сервере запущена какая-то программа, которой можно присылать картинки, а она сообщает, насколько они похожи на загаданную картинку. Когда вы присылаете изображение, очень похожее на правильное, вам выдают ключ — и задача решена.
Первый человек (или агент?), который решит обе части задачи K, получит от меня год подписки на ChatGPT Pro — при условии, что он раньше не решал эту задачу (не участвовал в финале), не будет читерить (например, искать готовое решение в интернете) и расскажет о том, как решал задачу! Пришлите мне в личку два кода, после того как их найдете.
Б
Боря программирует
12.04.2026 11:28 · 👁 7.7K
Midnight Code Cup 2026 Qualification Round. Results.
Прошел квалификационный раунд, интересные ощущения от него.
Вот тут можно почитать задачи: https://codeforces.com/gym/106478
Вот тут посмотреть финальные результаты: https://ranker.codeforces.com/ranklist/106471
Мы в этих контестах разрешаем пользоваться AI, и очень интересно наблюдать, насколько быстро все меняется. В финале прошлого года (который был летом) команды уже довольно часто использовали AI. Он давал возможность быстро написать хорошее решение и войти в топ, но при этом код становилось сложно поддерживать, участники не понимали, что в нем происходит, и ближе к концу контеста на топовых местах были команды, которые большинство кода писали руками. Сейчас же почти все команды в топе использовали AI, и в основном занимались тем, что говорили агентам, что нужно делать, а не решали задачи сами.
При этом те команды, которые по старинке пытались решать задачи руками, потратили много времени на написание бойлерплейта, и им не хватило времени, чтобы написать какое-то хорошее решение. Чем-то напоминает обычную работу программиста, где уже сейчас можно получать результаты сильно быстрее за счет использования AI, но есть много людей, которые не пытаются или не хотят это делать, и в итоге окажутся в сложном положении.
На этом контесте я был автором задачи С. Кажется, с точки зрения сложности/глубины вышло довольно хорошо. Мой личный критерий "интересности" оптимизационной задачи следующий. Если попросить агента написать хорошее решение задачи, а потом в бесконечном цикле просить его "улучшить", то он не придет к оптимальному решению, а застрянет в каком-то локальном оптимуме. А правильная стратегия — это иногда сделать несколько шагов назад и понять, можно ли как-то глобально по-другому решить задачу.
Например, в лидерборде можно видеть, что большинство решений в топе получило примерно 70k баллов, но при этом есть решение от Probably worse than LLMs, которое получило 90k. И что-то мне подсказывает, что решения построены на немного разных идеях, и текущим агентам тяжело перестать микрооптимизировать код, который дает 70k, и сделать большой скачок до 90k.
Если вы участвовали, как вам контест?
Б
Боря программирует
09.04.2026 18:48 · 👁 6.3K
Midnight Code Cup 2026 Qualification Round
Уже в эту субботу пройдет квалификационный раунд Midnight Code Cup! Сегодня последний шанс зарегистрироваться на раунд, так что если вы все еще это не сделали — самое время!
Если вы вдруг не знаете, что такое Midnight Code Cup, то это контест с финалом в Белграде, который будет длиться 24 часа (а квалификация всего 4 часа). Мы стараемся придумывать интересные необычные задачи. Вот тут можно посмотреть прошлогодние — https://codeforces.com/blog/entry/143717
За последний год мир довольно сильно изменился, поэтому очень рекомендую заранее поставить Codex, и вообще заранее попробовать порешать задачи вместе с агентами. Мне кажется это может очень сильно вас ускорить, но при этом это довольно необычный процесс, и чтобы делать его хорошо, нужно тоже тренироваться. Например, нужно научиться понимать, где агенты могут помочь, а где нет. Или как организовать работу так, чтобы баг, который агент добавил вам в код, можно было легко найти.
Удачи и увидимся на финале!
Б
Боря программирует
24.03.2026 20:06 · 👁 8.7K
Parameter Golf
Мы (OpenAI) недавно запустили контест, в котором нужно натренировать как можно более хорошую модель фиксированного размера (не больше 16МБ) на фиксированном датасете. Лидерборд (и код сабмитов) публичный, поэтому уже можно посмотреть какие типы оптимизаций помогают, и что примерно можно еще попробовать.
Размеры всего достаточно маленькие, так что для экспериментов не нужно слишком много ресурсов, но при этом все еще нужны gpu. Поэтому, если вы хотите поучаствовать, можно получить от нас кредитов на эксперименты.
По собственному опыту знаю, что очень сложно попасть на собес в OpenAI, даже если ты очень умный и замотивированный. Этот контест как раз сделан для того, чтобы выявить таких людей среди большого количества резюме, которые нам присылают. Так что если вы хотите попасть в OpenAI — рекомендую поучаствовать!
Б
Боря программирует
15.02.2026 16:32 · 👁 9.4K
Чтение мыслей
Тестировал сегодня новую модель. В качестве теста ей нужно было угадать случайную последовательность из десяти букв пользуясь некоторыми подсказками. К сожалению, в генерации подсказок я немного набагал, и единственная подсказка, которую получила модель, была "вторая буква из десяти это y" (по-английски).
Мои баги ее не сильно волновали, поэтому она немного подумала, и выдала правильный результат. Какие 10 символов были загаданы?
Б
Боря программирует
31.12.2025 19:38 · 👁 11.3K
Вместо итогов 2025 года тут будет кот! С новым годом!
Б
Боря программирует
22.12.2025 11:38 · 👁 11.3K
Чем заняться первого января?
Если у вас все еще нет планов на первое января, то очень рекомендую поучаствовать в контесте от Андрея — https://t.me/andgein_notes/192!
Это не обычный контест типа CodeForces или ICPC, тут можно пользоваться LLM и задачи довольно нестандартные. Вот тут можно почитать задачи прошлого года с решениями: https://2025.andgein.ru/about-tasks. Я участвовал в прошлом году (даже выиграл 🥇), мне очень понравилось! Вот тут писал про одну из задач — https://t.me/bminaiev_blog/84.
Вообще за последний год стало сильно сложнее делать контесты, в которых разрешено пользоваться LLM. На CodeForces их уже давно запретили. На AtCoder довольно долго они были запрещены на div2 раундах, но разрешены на AtCoder Grand Contest потому что "мы даем задачи где думать надо, тут LLM вам не помогут" (чтобы оценить сложность задач — на последнем таком раунде я решил 0 задач из 5). Но в итоге три месяца назад тоже запретили, потому что на очередном раунде GPT5-Pro решил несколько задач.
Мы разрешали пользоваться LLM на MidnightCodeCup и планируем такие же правила на этот год. Но придумывать задачи, которые AI не может решить сам, все сложнее и сложнее. Так что пользуйтесь возможностью поучаствовать в таких контестах, пока она есть!
Б
Боря программирует
10.10.2025 17:07 · 👁 11.6K
Красивые детальные статьи
Выходные это отличное время, чтобы потратить пару часов на то, чтобы прочитать какую-нибудь очень детальную статью и подробно в чем-то разобраться. По этому поводу хочу поделиться несколькими качественными длинными постами.
1. https://www.aleksagordic.com/blog/matmul — очень подробно про перемножение матриц на GPU. Что-то в стиле "What Every Programmer Should Know About Memory", только про GPU. У него в блоге еще есть про внутренности vLLM и всякие другие штуки.
2. https://thinkingmachines.ai/blog/lora/. Thinking machines начали публиковать довольно интересные блоги. У них там еще есть про Modular Manifolds, но на мой вкус слишком много математики.
3. https://pair.withgoogle.com/explorables/grokking/ прикольные визуализации про эффект grokking-а. В какой-то момент мне настолько понравилась статья, что я сделал задачу в контесте по ее мотивам.
4. https://transformer-circuits.pub/2025/attribution-graphs/methods.html У Anthropic есть много красивых статей про внутренности LLM.
5. https://bminaiev.github.io/simulated-annealing Когда-то у меня хватало свободного времени, чтобы писать длинные посты.
Я скинул chatgpt список выше и попросил найти что-то похожее. Можете поверить наслово, он сгенерировал хороший ответ, но почему-то кнопка "поделиться ответом" не работает. Поэтому вместо этого вот вам еще один пост из хорошего блога — https://lilianweng.github.io/posts/2023-01-27-the-transformer-family-v2/
Накидайте в комментариях каких-нибудь еще красивых подробных статей на любые темы!
Б
Боря программирует
30.09.2025 18:47 · 👁 9K
Дерево Фенвика
Дерево Фенвика это структура данных, которая позволяет быстро обрабатывать две операции:
- a[pos] += x
- посчитать сумму a[i] для i <= r.
Вместо массива a будем поддерживать некоторый массив f. Сами функции выглядят так:
void add(int pos, int x) {
for (int i = pos; i < n; i = up(i)) {
f[i] += x;
}
}
int sum(int pos) {
int res = 0;
for (int i = pos; i >= 0; i = down(i)) {
res += f[i];
}
return res;
}
Функции up и down это какие-то магические битовые операции. Этот пост предназначен для людей, которые раньше знали этот код наизусть, а теперь не смогут вспомнить как именно пишутся up и down. Расскажу больше деталей про дерево Фенвика, может вы научитесь выводить формулы для up и down самостоятельно.
В качестве up можно использовать разные функции, но будем использовать "проставить младший нулевой бит". Довольно легко понять, что ее можно написать как up(i) = i | (i + 1). А теперь давайте поймем как подобрать правильную функцию down для этой up.
Интересное свойство получаемого массива f заключается в том, что в ячейке pos хранится сумма некоторого подотрезка элементов из a. Причем правый конец этого отрезка это pos. Например, в pos = 010110111 хранится сумма элементов, которые подходят под маску 010110??? (таких всего 8 штук). Т.е. нужно посмотреть на отрезок из единиц, стоящих в самый младших разрядах, и заменить их на любые биты.
Как посчитать sum(010110111)? Нужно взять f[010110111] (соответствует сумме a[010110000..010110111]), а потом добавить к ней sum(010101111). По сути переход от 010110111 к 010101111 это и есть применение функции down.
Получается функцию down можно описать словами следующим образом:
- Занулим отрезок из единиц, стоящий в младших разрядах.
- Найдем самый младший не нулевой бит, занулим его, а во все разряды младше него запишем единицы.
Формула получается down(i) = (i & (i + 1)) - 1.
Для закрепления материала, предлагаю самостоятельно написать функцию find(s), которая за логарифм находит наибольшую позицию r такую, что сумма чисел a[0..r] <= s (если все a неотрицательные).
Б
Боря программирует
18.09.2025 17:01 · 👁 12.9K
ICPC is solved
Вчеры мы рассказали как AI от OpenAI поучаствовал в финале ICPC. Он смог решить все задачи — больше чем любая другая команда. Это очень крутой результат! Единственный раз в истории ICPC, когда команда решила все задачи во время финала, был 10 лет назад (и в этой команде был я).
За последние несколько месяцев мы поучаствовали в разных соревнованиях и везде добились хороших результатов. Первое место на ICPC. Второе на Atcoder Heuristic World Finals. Золото на IOI и IMO.
Не могу перестать удивляться скорости прогресса! Чуть больше года назад я ездил гостем на финал ICPC, и, встретив там Jakub Pachocki, мы обсуждали когда уже наступит тот момент, когда AI сможет выиграть ICPC. Тогда горизонт в пять лет мне казался реалистично-оптимичным. И вот мы тут. Очень интересно узнать что будет еще через год-два!