Как стать автором
Поиск
Написать публикацию
Обновить
3.45

Спортивное программирование *

Интеллектуальные соревнования

Сначала показывать
Порог рейтинга
Уровень сложности

Когда побеждать — это твой профиль

Время на прочтение6 мин
Количество просмотров5K

Всем привет! Меня зовут Лида, и я провожу соревнования по программированию уже 12 лет. (Привет, Лида!) В этом году я присоединилась к Команде ВКонтакте и теперь курирую VK Cup. Целых 5 сезонов это был чемпионат только по спортивному программированию. Но настала пора серьёзных изменений.


Мы убрали большую часть ограничений, отменили парный формат и добавили три новых направления. VK Cup 2019 — это онлайн-соревнования для олимпиадных программистов, мобильных разработчиков, дизайнеров и специалистов по машинному обучению с грандиозным офлайн-финалом в Санкт-Петербурге.


В этой статье я расскажу, что нового мы придумали, а мои коллеги дадут рекомендации для участников. Регистрация на VK Cup открыта по ссылке vk.cc/cup до 4 декабря — осталась всего неделя! Все подробности о треках и этапах — под катом.


Читать дальше →

Второй чемпионат по программированию: разбираем задачи ML-трека

Время на прочтение16 мин
Количество просмотров13K
В октябре состоялся второй чемпионат по программированию. Мы получили 12 500 заявок, более 6000 человек попробовали свои силы в соревнованиях. В этот раз участники могли выбрать один из следующих треков: бэкенд, фронтенд, мобильную разработку и машинное обучение. В каждом треке требовалось пройти квалификационный этап и финал.

По традиции мы опубликуем разборы треков на Хабре. Начнём с задач квалификационного этапа по машинному обучению. Команда подготовила пять таких задач, из которых составила два варианта по три задачи: в первом варианте были задачи A1, B1 и C, во втором — A2, B2 и C. Варианты случайно распределялись между участниками. Автор задачи C — наш разработчик Павел Пархоменко, остальные задачи составил его коллега Никита Сендерович.

За первую простую алгоритмическую задачу (A1/A2) участники могли получить 50 баллов, правильно реализовав перебор по ответу. За вторую задачу (B1/B2) мы давали от 10 до 100 баллов — в зависимости от эффективности решения. Чтобы получить 100 баллов, требовалось реализовать метод динамического программирования. Третья задача была посвящена построению кликовой модели по предоставленным обучающим данным. В ней требовалось применить методы работы с категориальными признаками и воспользоваться нелинейной моделью обучения (например, градиентным бустингом). За задачу можно было получить до 150 баллов — в зависимости от значения функции потерь на тестовой выборке.
Читать дальше →

Наши победили: TopCoder Open 2019

Время на прочтение3 мин
Количество просмотров7.7K
image

В Хьюстоне 13-16 ноября прошёл финал чемпионата TopCoder Open 2019, и Гена Короткевич (Беларусь) занял первое место сразу в двух соревновательных треках: Algorithm и Marathon. Такое раньше ещё никому не удавалось сделать в один год! Отличное завершение сезона-2019, в котором до этого Гена уже победил в финалах двух других крупных соревнований: Google Code Jam и Facebook Hacker Cup.

Topcoder Open — ежегодный индивидуальный профессиональный турнир по программированию, проводимый компанией Topcoder Inc. Проводится по системе Topcoder c 2001 года. Всего в Topcoder шесть видов соревнований: Algorithm, Development, First2Finish, UI Design, UI Prototype и Marathon.

Marathon Match (MM) – это оптимизационная задача, правильный ответ на которую не знают даже организаторы. Программист должен предложить наиболее эффективное решение за короткое время.

Algorithm (SRM) – это классическое спортивное программирование. За полтора часа нужно решить задачи на Java, C#, C++ или Python.
Читать дальше →

Как я выиграл 3 из 4 золотых медалей на Computing Olympiad

Время на прочтение7 мин
Количество просмотров5.4K
image

Я готовился к Финалу чемпионата мира Google HashCode 2017. Это крупнейший конкурс с алгоритмическими задачами, организованный Google.

Я начал изучать C ++ с нуля в девятом классе. Я ничего не знал о программировании, алгоритмах и структурах данных. В какой-то момент я написал свою первую строчку кода. Семь месяцев спустя на горизонте замаячила олимпиада по программированию. Я захотел узнать насколько хорошо работал мой стиль изучения программирования. Это была идеальная возможность.

После двухдневных соревнований пришли результаты: я выиграл золотую медаль.

Я был в шоке. Я опередил конкурентов с 5-летним опытом. Я знал, что много работал, но это достижение превзошло все мои ожидания. Я понял, что спортивное программирование это моя тема и ушел в нее с головой.

Я знаю, что привело меня к успеху и хочу поделиться этим с вами.
Читать дальше →

Как мы слили финал IT-Планеты по программированию

Время на прочтение16 мин
Количество просмотров10K
Не мы плохие, а багов много. Разработка искусственного интеллекта для игры “Хоккей” за ~7 часов.

Изначально статья планировалась о стратегиях участников, о том, что они успели сделать за конкурсное время и рады ли проделанной работой, но, опросив финалистов восемь, стало ясно, что ничего не выйдет и надо срочно менять направление.

Дело в том, что на интересующие нас вопросы мы получали максимум 6 слов, а потом сразу же слышали недовольства о багах, с которыми столкнулись участники. Только один человек написал:
Не хочу писать ничего отрицательного, думаю, это некорректно, да и организаторам самим должно быть грустно. Поэтому скажу, что идея задания достаточно интересная, хотя лично мне не очень нравится такой формат соревнований (Анна Прозорова).

Из заголовка статьи понятно, что мы ничего не выиграли. И да, именно “мы”. За конкурсные дни у меня появилось много хороших знакомых, в том числе и Анна (odrus), являющаяся соавтором данной статьи. Также в последний момент мы разговорились со Львом (zadamantiy) и с его разрешения описали участие в финале.

Лично я являюсь участником движения “A Complaint Free World”, но я перевешу свой браслет на другую руку и буду жаловаться, хоть и в шуточной форме, ведь, с другой стороны, таковы условия конкурса и нужно быть хорошим специалистом, чтобы выиграть в нём и совладать с недочётами! Никаких претензий у нас нет, наоборот — большое спасибо!

Под катом, помимо описания правил игры, регламента конкурса и найденных багов, мы поделимся с Вами своими косяками, тем, с чем столкнулись лично и как решали ту или иную проблему, как готовились к конкурсу. Возможно, где-то Вы узнаете себя, если принимали участие в подобных конкурсах.

Цель статьи — это собрать фейлы конкурса как со стороны участников, так и со стороны организаторов, зарубить их себе на носу и больше никогда не наступать на те же грабли. Надеемся, что статья повысит уровень очередного конкурса.


«Учебный процесс в IT и не только»: технологические конкурсы и мероприятия Университета ИТМО

Время на прочтение5 мин
Количество просмотров3.2K
Рассказываем о мероприятиях, которые пройдут у нас в ближайшие два месяца. Вместе с этим — делимся конкурсами для тех, кто проходит обучение на технических и других специальностях.


Фото: Nicole Honeywill / Unsplash.com


Конкурсы



Студенческая олимпиада «Я — профессионал»

Когда: 2 октября — 8 декабря
Где: онлайн

Цель олимпиады «Я — профессионал» — проверить не только теоретические знания учащихся, но и их профессиональные навыки. Задания составляют профессора крупных российских университетов и специалисты ИТ-компаний. Проявившие себя участники смогут поступить в отечественные вузы без экзаменов. И пройти стажировку в Яндексе, Сбербанке и других организациях.

«Я — профессионал» — это попытка исключить ситуации, когда студенты слышат фразу: «Забудьте обо всем, чему вас учили в вузе». Чтобы компаниям не приходилось переучивать полностью подготовленного специалиста. Организован проект силами Общероссийского объединения работодателей и более 20 ведущих вузов России. Техническим партнером выступает Яндекс.
Читать дальше →

Телефон для коня и оркестр без пианиста. Как придумать спортивные задачи по фронтенду

Время на прочтение8 мин
Количество просмотров7.3K

Привет! Меня зовут Дмитрий Андриянов, я работаю разработчиком интерфейсов в Яндексе. В прошлом году я участвовал в подготовке нашего онлайн-соревнования по фронтенду.



Пару дней назад мне пришло письмо от организаторов с вопросом, не хочу ли я поучаствовать снова — придумать задачи по фронтенду для второго чемпионата по программированию. Я согласился — и подумал, что это интересная тема для статьи. Налейте кофе, усаживайтесь поудобнее. Я расскажу, как мы готовили задачи год назад.

Читать дальше →

История второго места в Mini AI Cup 4: Paper IO

Время на прочтение7 мин
Количество просмотров7.5K

Меня зовут Волков Игорь. Я работаю в консалтинговой компании на позициях Java разработчика, архитектора, руководителя команды, технического менеджера. Разные роли в зависимости от текущих потребностей проекта. Обратил внимание на конкурсы от mail.ru давно, но активно поучаствовать получилось только на Paper IO.


В этот раз организаторы предложили реализовать стратегию управления ботом по мотивам популярной игры. Подробнее с правилами можно ознакомиться здесь. Код моей стратегии можно найти здесь, а примеры игр на сайте чемпионата.


Читать дальше →

Итоги кибербитвы The Standoff, или Как PT Expert Security Center следил за атакующими

Время на прочтение11 мин
Количество просмотров5K


На Positive Hack Days уже в четвертый раз проводилось соревнование The Standoff: это кибербитва между командами атакующих, защитников и экспертных центров безопасности (SOC) за контроль над инфраструктурой виртуального города F.

Перед атакующими стояли те же цели, к которым обычно стремятся киберпреступники, — украсть деньги из банка, похитить конфиденциальные данные, устроить технологическую аварию. Они старались выполнить задания, а команды защитников совместно с командами SOC обеспечивали безопасность своих предприятий и были готовы оперативно отражать атаки противников. Также в этом году к соревнованию присоединились команды разработчиков: в рамках The Standoff проводился хакатон, о его результатах мы уже рассказывали в предыдущей статье.

За ходом The Standoff наблюдал экспертный центр безопасности Positive Technologies (PT Expert Security Center). Наши спецы проанализировали события, которые были зафиксированы средствами защиты Positive Technologies — MaxPatrol SIEM, PT Network Attack Discovery, PT Application Firewall, PT MultiScanner, PT ISIM. С их помощью была восстановлена полная картина противостояния. В этой статье мы расскажем о том, что происходило на площадке и как действовали команды при атаках на различные предприятия и на инфраструктуру города. Для тех, кому лень читать лонгриды, есть сокращенная версия отчета на Anti-Malware.
Читать дальше →

Грязные хаки ассемблера 6502

Время на прочтение10 мин
Количество просмотров22K
В этой статье перечислены некоторые трюки, которые применяли участники моего маленького конкурса программирования Commodore 64. Правила конкурса были просты: создать исполняемый файл C64 (PRG), который рисует две линии, чтобы сформировать изображение ниже. Побеждал тот, чей файл меньше по размеру.


Конкурсные работы публиковались в открытых твитах и личными сообщениями, которые содержали только байты PRG-файла и хэш MD5.
Читать дальше →

Уместить звездное небо на WebGL в 1009 байт JavaScript

Время на прочтение3 мин
Количество просмотров9.6K
Две вещи наполняют душу всегда новым и все более сильным удивлением и благоговением, чем чаще и продолжительнее мы размышляем о них, — это звездное небо надо мной и моральный закон во мне. Иммануил Кант

JS1k — ежегодное соревнование, где надо вместить демо, игру или все что угодно, в 1024 символа на JavaScript. В этом году мое демо заняло четвертое место (до третьего не хватило каких-то два балла). Посмотреть демо можно на сайте JS1k. У кого не открывается или не работает, выглядеть должно так:



Минифицированный и полный исходный код лежит на github. А под катом разбор того, как сейчас минифицируют JavaScript для таких конкурсов.

Жадный подход и игровые автоматы. Разбор задач ML-трека чемпионата по программированию

Время на прочтение16 мин
Количество просмотров12K


Мы продолжаем публиковать разборы задач, которые предлагались на недавнем чемпионате. На очереди — задачи, взятые из квалификационного раунда для специалистов по машинному обучению. Это третий трек из четырёх (бэкенд, фронтенд, ML, аналитика). Участникам нужно было сделать модель исправления опечаток в текстах, предложить стратегию игры на игровых автоматах, довести до ума систему рекомендаций контента и составить ещё несколько программ.

Читать дальше →

Чемпионат по программированию: разбираем задачи для фронтенд-разработчиков

Время на прочтение12 мин
Количество просмотров36K
На днях победители чемпионата по программированию, который завершился в начале лета, получили заслуженные призы. Для этого мы позвали их, а также всех остальных финалистов из топ-20 каждого направления в московский офис Яндекса. Ещё раз поздравляем тех, кто сумел выйти в финал.

Тем временем мы подготовили разбор задач чемпионата, которые предлагались фронтенд-разработчикам. Это задачи из квалификационного этапа. Напоминаем, что чемпионат проводился по четырём направлениям: бэкенд, фронтенд, машинное обучение и аналитика.

A. Градусник пробок


Условие


Пользуясь навигатором, многие видели «градусник» при построении автомобильного маршрута. Он представляет собой разноцветную прямую, на которой изображена загруженность дорог на маршруте. В этой задаче предлагается написать функцию, которая адаптирует данные «градусника» для разных размеров экрана.

Читать дальше →

Ближайшие события

Окружи, откуси, распили: новое соревнование Mini AI Cup #4

Время на прочтение4 мин
Количество просмотров14K

Привет! Большинство из нас, специалистов в IT сфере, любит играть в игры — карточные, настольные, компьютерные и другие. Зачастую бывает, что игры пользы никакой не приносят, а хотелось бы всё и сразу — удовольствие, фан и знания. Специально для вас мы стараемся изобретать «игры для программистов», которые сочетают в себе всё вышеперечисленное. Предлагаем вам познакомиться с ними и приглашаем принять участие в соревновании по искусственному интеллекту Mini AI Cup #4!
Читать дальше →

Разбор конкурса IDS Bypass на Positive Hack Days 9

Время на прочтение7 мин
Количество просмотров3.9K
На международном форуме Positive Hack Days 2019 впервые проходил конкурс IDS Bypass. Участникам надо было исследовать сегмент сети из пяти узлов, дальше либо эксплуатировать уязвимость сервиса, либо выполнить заданное условие (например, послать определенный HTTP-ответ) и таким образом добыть флаг. Найти эксплойт было легко, но задачу усложняла IDS: система стояла между участниками и узлами и проверяла каждый сетевой пакет. Атакующие видели на дашборде, если сигнатура блокировала их соединение. Ниже я расскажу подробно о самих заданиях и разберу их решение.

Читать дальше →

Разбор квалификации чемпионата по программированию среди бэкенд-разработчиков

Время на прочтение7 мин
Количество просмотров30K

Первого июня состоялись финалы нашего чемпионата по программированию. Имена победителей уже известны. В скором времени они получат свои награды, а мы тем временем начинаем публиковать разборы задач чемпионата. Сначала разберём задачи квалификационного этапа среди бэкенд-разработчиков.


Квалификация длится неделю, а количество участников исчисляется тысячами, так что подготовка задач, оказывается, непростое дело. В общей сложности нам нужно было сделать 24 задачи и разделить их между четырьмя вариантами так, чтобы варианты оказались сопоставимы по сложности.



В этот раз мы придумали шесть задач, для каждой из которых можно было придумать несколько альтернативных формулировок: одна придуманная задача порождала сразу четыре! Тем самым варианты получились сопоставимыми настолько, насколько это вообще возможно.


Поэтому я не буду публиковать разборы всех 24 задач. Вместо этого я разберу шесть задач одного из квалификационных вариантов: другие решаются похожим образом.

Читать дальше →

Краудсорсинг в ML Boot Camp. Считаем mIOU без картинок для новой задачи от Одноклассников

Время на прочтение2 мин
Количество просмотров4.8K
Привет! Лето — жаркое. Организаторы «айтишных» чемпионатов много сидели на солнце, сгорели и схватили удар, но главное — собрали новую задачу для очередного (уже девятого) контеста на платформе ML Boot Camp. Чемпионат пройдёт онлайн в течение месяца.


Сейчас на платформе зарегистрировано более 10 тысяч специалистов. Часто бывает, что задачи, которые на ней появляются, не всем по зубам (богам Kaggle в том числе). Для чего мы это делаем? Нужно развиваться и пробовать, причем на реальных данных, а не синтетическом булшите. Победы придут со временем.

Задача, которую хотим предложить вам решить в этом соревновании, отличается от всех предыдущих. Тема задачи — это детектирование объектов на изображениях. Формулировка задачи подразумевает, что в наборе данных будут картинки, но, что забавно, их нет. И это не петабайты данных. И даже не гигабайты.
Читать дальше →

Разбор конкурса «Конкурентная разведка» на PHDays 9

Время на прочтение9 мин
Количество просмотров8.2K


Восьмой год традиционный конкурс «Конкурентная разведка» предлагает участникам попробовать свои силы в поиске информации и между делом изучить новые техники OSINT. В этом году все задания были сосредоточены вокруг вымышленной ИБ-компании, позиционирующей себя как компанию — эксперта одной уязвимости. Участники конкурса должны были найти информацию о людях, связанных с этой организацией, не прибегая ко взлому, а полагаясь исключительно на помощь различных источников с просторов сети и на собственную смекалку.

Конкурс включал 19 заданий, за каждое из которых начислялось определенное количество баллов по степени сложности. В этой статье мы разберем, как можно было решить каждое задание.
Читать дальше →

По следам индустриального ниндзя: приглашаем участвовать в онлайн-конкурсе по промышленной безопасности

Время на прочтение1 мин
Количество просмотров2.3K


На прошедшем PHDays 9 мы проводили конкурс по взлому завода по перекачке газа Industrial Ninja. На площадке было три стенда, эмулирующих индустриальный процесс: под большим давлением в воздушный шар закачивался воздух. У каждого стенда был свой уровень сложности (по степени защиты): новичок, бывалый и ниндзя. При этом оборудование и технологический процесс не различались.

Перед конкурсантами стояла задача разобраться в технологическом процессе, перехватить управление заводом и спровоцировать аварию: в реальности — сдуть или лопнуть шарик. Однако самое сложное задание так и осталось нерешенным.
Читать дальше →

Соревнование по программированию Kotlin Heroes

Время на прочтение2 мин
Количество просмотров5.3K
JetBrains начала сотрудничество с Codeforces в продвижении языка Kotlin среди любителей спортивного программирования. Codeforces предоставляет Kotlin-разработчикам платформу, на которой можно посостязаться в алгоритмическом программировании и отточить свое мастерство. Вместе с Codeforces мы запускаем серию соревнований под названием Kotlin Heroes.

image
Читать дальше →