Все потоки
Поиск
Написать публикацию
Обновить
8.81

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

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

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

Суффиксное дерево на python

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров13K

Суффиксное дерево (Suffix Tree, ST) – это структура данных, которая позволяет "проиндексировать" строку за линейное время от её длины, чтобы потом быстро находить подстроки (за время О(длина искомой подстроки)).

Тема построения Suffix Tree и его применения хорошо раскрыта в Интернет (википедия, статья на хабр про алгоритм Вейнера, язык Си, и статья на хабр про алгоритм Укконена). Но всегда есть соблазн поучаствовать в соревновании "написать проще и яснее", хотя шансов мало. Тем не менее, рискну.

Несмотря на сложность, алгоритм построения ST умещается в 35 строк на python (см. ниже метод _build_tree). Их буквально можно выучить и воспроизводить по памяти как некое произведение искусства, как воплощенный в набор символов труд человеческой мысли, причём не одного человека, и первые из них точно гении. :) Есть соблазн, всматриваясь в код, прикоснуться к великому и чему-то научиться.

Читать далее

IT-олимпиада в ВСК становится традицией

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

Год назад ВСК получила незабываемый, позитивный опыт проведения олимпиады по программированию внутри своей компании. Известный факт: не все начинания, даже успешные, в итоге имеют свое продолжение. Но, благодаря энергии и настойчивости нашего DevRel и неравнодушных коллег из разных подразделений ВСК, в июле состоялась 2-я IT-олимпиада ВСК, которая, уже традиционно, объединила в online-режиме площадки 3-х регионов (Москва, Волгоград и Томск).

В этот раз наши аппетиты выросли, что было заметно по расширению границ мероприятия:

1. В отличие от 2021 года, кроме соревнований по программированию, мы провели состязания в навыках среди аналитиков и администраторов серверов приложений.

2. Расширился круг подразделений компании, сотрудники которых решились испытать свои силы: кроме ИT-блока, участие приняли блок информационной безопасности и даже 2 бизнес-подразделения.

3. Среди участников были и внешние – сотрудники крупного партнера нашей компании.

4. Общее количество участников увеличилось почти в 2 раза.

Читать далее

Письмо ценой катастрофы: расследуем атаку на The Standoff, используя продукты Positive Technologies

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

Привет! В мае прошел очередной, уже 11-й, PHDays, а вместе с ним и The Standoff, и мы, как обычно, не остались без кейсов интересных атак.

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

Читать далее

Интерактивный учебник для подготовки к алгоритмической секции собеседования

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

Собеседования в крупные IT-компании почти всегда содержат алгоритмическую секцию — даже если вы собеседуетесь на позицию, в работе на которой алгоритмы возникать вряд ли будут. Ниже мы приводим пример задачи, с которой вы можете столкнуться на вашем следующем интервью. Мы расскажем, как эта задача решается, но мы настоятельно рекомендуем вам читать решение только после того, как вы попробуете решить задачу самостоятельно: во-первых, это отличная тренировка; во-вторых, вы лучше запомните решение, если придумаете его сами (не отказывайте себе в этом удовольствии!); в-третьих, даже если вы подумаете над задачей, но не решите её, время не будет потеряно: прочитав потом решение, вы лучше его поймёте и оцените его красоту.

Итак, вот сама задача

Спортивное программирование: не все так просто, как кажется

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

Меня зовут Абай Баймуканов, я – разработчик-алгоритмист международной IT-компании Relog. Уже несколько лет увлекаюсь олимпиадными программированием, поэтому в этой статье хотел бы поделиться своим видением по этому поводу.

Быть олимпиадником по спортивному программированию довольно весело и интересно. Но быть жюри и составителем задач для самих олимпиад – достаточно ответственное и не менее интересное дело. Спортивное программирование - это те же математические задачки на логику, которые всего то нужно решить. Но программирование, в отличие от любого другого предмета, уникально тем, что решение нужно еще и реализовать в виде компьютерной программы.

Здесь есть свой нюанс: программа может работать настолько долго, сколько не существует даже вселенная, а может сработать за долю секунды. Причем в обоих случаях результат будет один и тот же. Любой олимпиадник стремится к тому, чтобы его программа была как можно эффективнее. Для этого существуют алгоритмы и структуры данных - методы, позволяющие сделать определенные программы более эффективными с точки зрения необходимого времени или памяти компьютера.

Спектр сложности у задач по спортивному программированию достаточно широкий: от задач для новичков до задач мирового уровня для вундеркиндов. Большинство соревнований проводится практически одном и том же формате, то есть дается несколько задач, на их решение 5 часов и за это время нужно решить как можно больше.

На школьных олимпиадах обычно за каждую задачу можно получить от 0 до 100 баллов и общим результатом будет суммарный балл за все задачи, у студентов в результат идет просто количество решенных задач, а если есть участники, решившие одно и то же количество задач, то они группируют по убыванию штрафа. Чем дольше решаешь задачу или чем больше на них нужно попыток решить, тем больше штрафов за нее получишь.

Читать далее

Калькулятор инвестиций и скринер ценных бумаг: как мы проводили свой первый хакатон BCS Coding Days

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

Привет! Я Люба Давыдова из компании БКС. Занимаюсь развитием ИТ бренда в компании. Расскажу об одном из наших последних мероприятий.

В декабре мы с партнерами из «Сколково» провели свое первое онлайн-соревнование для разработчиков. Мы решили поделиться опытом организации мероприятия и примерами тематических задач.

Читать далее

The Standoff 2021, ноябрь edition. Что не проскочило мимо песочницы PT Sandbox

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

С 14 по 16 ноября 2021 года на киберполигоне The Standoff происходило третье противостояние между атакующими и защитниками. Сражения прошли в стремительно развивающемся городе-государстве F. Реализовывать недопустимые события ринулись десять суперскилованных команд атакующих, а на бастионах защиты их встречали пять команд защитников. Как обычно, сторонним пристальным наблюдателем всего происходящего на киберарене был security operations center (SOC).

Несколько команд экспертного центра безопасности Positive Technologies — PT Expert Security Center (PT ESC), в том числе и наш отдел обнаружения вредоносного ПО — не смогли удержаться и таки засунули свои носы сенсоры в гущу событий. С помощью песочницы PT Sandbox мы старательно изучали все файлы, которые влетали в инфраструктуру противостояния, и, вооружившись различными технологиями, искали вредоносный код. По традиции знакомим вас с результатами анализа. А вспомнить, как это было полгода назад, вам поможет прошлый рассказ.

Читать

Как мы в ВСК провели олимпиаду по программированию для сотрудников

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

Привет, Хабр! 11 июня мы в ВСК провели первую олимпиаду по программированию в Москве, Волгограде и Томске. Поучаствовать мог каждый сотрудник с базовыми навыками программирования. Среди участников были не только профессиональные программисты, но и руководители, аналитики, администраторы.

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

В этой статье мы

  • расскажем, как настроить «Яндекс.Контест»;
  • приведём задачи;
  • покажем, во сколько нам обошлась олимпиада (сразу признаемся: сумма вышла настолько смехотворной, что мы спрячем её под кат).

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

На The Standoff будут взламывать NFT-картины

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

15–16 ноября в рамках крупнейшего российского киберполигона пройдет конкурс The Standoff Digital Art, участникам которого предложат взломать цифровые картины современных представителей российского диджитал-арта: Desinfo, Meta Rite, Артём Ткач, volv_victory, Anomalit Kate и Loit.

Каждая картина представлена в виде уникального NFT-токена, который предстоит испытать на прочность исследователям безопасности со всего мира. Чтобы завладеть картиной, им придется найти уязвимости в смарт-контрактах путем анализа исходного кода. Те, кто первыми успешно реализуют атаку, получат ?? ценные призы от компаний Positive Technologies и ГК Innostage.

Конкурс пройдет в онлайн-формате. Присоединяйтесь к трансляции на сайте standoff365.com, чтобы увидеть это.

UPD: разбор заданий с конкурса уже готов! Читайте его здесь.

Подробности

Задачи с чемпионата мира по программированию ICPC 2021

Время на прочтение3 мин
Количество просмотров25K
В 2021 году финал чемпионата мира по программированию среди университетских команд ICPC (International Collegiate Programming Contest) прошел в Москве в начале октября.

Участникам нужно было решить 15 задач на трёх компьютерах (раньше было меньше задач и 1 компьютер).

image Золото
1) ННГУ (Нижний Новгород)
2) Seoul National University (Корея)
3) ИТМО (Санкт-Петербург)
4) МФТИ (Москва)

Серебро
5) University of Wroclaw (Польша)
6) University of Cambridge (США)
7) Беларусский государственный университет (Минск)
8) University of Bucharest (Румыния)

Бронза
9) Massachusetts Institute of Technology (США)
10) ХНУРЭ (Харьков)
11) University of Illinois at Urbana-Champaign (США)
12) НИУ ВШЭ (Москва)

13) СПбГУ (Санкт-Петербург)
14) University of Warsaw (Польша)
15) Utrecht-Leiden University (Нидерланды)
16) Harvard University (США)
17) University of Central Florida (США)
18) National Taiwan University (Тайвань)
19) Питерский филиал ВШЭ (Санкт-Петербург)
20) МГУ (Москва)
Читать дальше →

RustCon Contest 2021 — соревнование для тех, кто пишет на Rust и тех, кто только к нему подступается

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

В прошлой статье мы писали, что давно пора снова собрать русскоязычное сообщество rust-разработчиков, и поэтому в декабре проведем RustCon Russia. Так вот, при подготовке конференции мы поняли, что есть два разных сегмента тех, кому интересен Rust. Первые — это те, кто уже пишут на нем. Вторые - те, кто только начал изучать или подумывает об этом. Питонисты, плюсеры, рубисты - все, кто понял, что у раста есть очень крутые преимущества, и пора бы изучить их подробнее.

В-общем, анонсируем RustCon Contest — индивидуальные соревнования по программированию на rust, где опытные разработчики могут внести вклад в открытые rust-проекты, а начинающие - попробовать rust на вкус на простых и чуть более сложных задачках. И те, и другие могут выиграть билет на RustCon, получить фирменный мерч или приличную скидку. Подробности под катом.

Читать далее

Спортивное программирование — социальный лифт в IT. Как его использовать школьнику, родителям школьника и разработчику?

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

С какого возраста можно обучать ребенка программированию и какой язык лучше выбрать? Как попасть на самые крутые IT-направления в лучшие вузы? Становятся ли дети разработчиков разработчиками? Как попасть на стажировку в Яндекс или на работу в Google?

Обо всем этом нам рассказывает Михаил Рубинчик — лидер и главный тренер по спортивному программированию в Уральском федеральном университете и основатель онлайн-школы по спортивному программированию SPGuide. Подробности под катом

Читать далее

Как запустить 100+ компиляторов и выстоять. Опыт Яндекс.Контеста

Время на прочтение14 мин
Количество просмотров8.3K
Привет, это снова Павел Тыквин, разработчик Яндекс.Контеста. Контест больше всего известен как площадка для соревнований по программированию: прямо сейчас идёт квалификационный этап чемпионата Yandex Cup. Я уже писал на Хабре о том, как мы решаем одну из стоящих перед нами проблем: выравниваем время исполнения кода. Ну а в этой статье я приоткрою детали процесса проверки, расскажу, через какие этапы проходит код участников и какими методами мы оптимизируем этот процесс, а также — как мы добавили возможность решать задачи на том языке, с которым участник уже знаком (вне зависимости от способов тестирования внутри платформы).

Как происходит проверка решения


Возьмём для примера простейшую задачу: вам заданы два целых числа a и b, выведите a+b.

Допустим, решение будет таким:

source.cpp:
#include <bits/stdc++.h>

using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
}

Как можно проверить это решение вручную без участия дополнительных сервисов и библиотек?
Например, так

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

Конкурс не для всех

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

Есть задача "Двенадцатая степень":

Перед Васей написаны целые числа от 0 до 2021. Он произвольно разбивает их на пары, внутри каждой пары суммирует, а все полученные суммы перемножает. Может ли у него получиться двенадцатая степень натурального числа?

Конкурс!

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

Порог входа в конкурс (по сложности) потихоньку растет, но до сих пор не стал запредельным. Еще не поздно решить задачу, прочитать условия конкурса, начать участвовать — и победить. Успехов :)

Читать далее

Как мы поучаствовали в ICFPC 2021 и что из этого вышло

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

Одна старая академическая конференция, International Conference on Functional Programming, уже больше двадцати лет организует соревнование по программированию своего имени. 1 задание, 72 часа, участвуют команды произвольного размера. На этом ограничения все. Задача может быть любой, решения — тем более.

Вас могут заставить писать ботов для игр или управлять марсоходом. Реализовывать виртуальные машины или разворачивать оригами. Искать кратчайшие маршруты в лабиринтах или разгадывать послания инопланетян. А в этом году мы пропихивали человечков в лямбды и клали песиков в гробы.

Под катом обзор контеста 2021 года и нашего участия в нем. А еще алгоритмы, теории, байки и разбор решений других команд.

Читать далее

Чем заняться в затишье между PHDays и The Standoff? Сделать обыкновенный разбор необыкновенного бейджа одной конференции

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

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

Читать далее

О чем говорит SIEM: разбираем кейсы атак, проведенных на The Standoff

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

Всем привет! Продолжаем рассказывать о том, как отработали и что интересного обнаружили наши продукты на майском The Standoff. Мы уже знакомили вас с уловом нашей песочницы PT Sandbox и историей о том, как PT Application Firewall помогал защищать кибергород от нападающих.

В этот раз наш рассказ будет посвящен MaxPatrol SIEM — системе мониторинга ИБ в реальном времени. Какие сценарии взлома использовали атакующие? Какие тактики и техники проникновения и закрепления стали самыми распространенными среди команд красных? Эксплуатация какой нашумевшей уязвимости позволила уронить контейнеры в морском порту? А что вызвало полную остановку ветрогенераторов в городе F? Ответы на эти и другие вопросы вы найдете под катом. Поехали!

Читать

Володя, где мой компьютер? Проблемы школьной информатики в России

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

Я вовсе не считаю, что количество часов нужно сокращать. Мое представление было бы таковым, если бы сам предмет информатики был крайне узким. Но это не так. Информатика достаточно широкая и комплексная наука, которая нуждается в изучении отдельных её областей, чтобы было хоть какое-то понимание. На деле же ученики даже не заинтересованы, поскольку они лишь поверхностно изучают тот объект, с которым сталкиваются ежедневно...

Читать далее

По следам The Standoff2021. Какие промышленные системы удалось взломать атакующим и как PT ISIM детектировал их действия

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

Мы продолжаем уже ставший традиционным цикл статей о том, как продукты Positive Technologies — MaxPatrol SIEMPT Network Attack Discovery, PT Sandbox, PT Industrial Security Incident Manager и PT Application Firewall — отработали на полигоне The Standoff и что интересного они выявили во время майской кибербитвы. Акцент сделаем на изучении техник атакующих, но действия команд защитников тоже рассмотрим.

Сегодня расследуем самые, по нашему мнению, любопытные и — естественно — самые успешные атаки на промышленные объекты виртуального города F, которые глобальный SOC (security operations center) киберполигона детектировал с помощью PT ISIM (системы глубокого анализа технологического трафика). Кроме того, поговорим о защищенности технологических сетей на киберполигоне и в жизни, обсудим, могут ли такие инциденты произойти на реальных промышленных предприятиях и как своевременно реагировать на возникающие угрозы. Подробнее о том, что на киберучениях «поймала» наша песочница PT Sandbox, читайте в нашем блоге, а сейчас добро пожаловать под кат.

Вперед!

Обзор платформ по проведению онлайн-чемпионатов

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

IT-соревнования могут оказаться полезными и для сотрудников, и для соискателей, и для компаний. Они помогают привлечь квалифицированных специалистов, протестировать компетенцию кандидатов, получить неожиданные технические решения, а если всё пойдет хорошо — то ещё и пропиариться на пол-Рунета.

В офлайн-хакатонах, к сожалению, сейчас не поучаствуешь. А вот онлайн на этом фоне стабильно расширяется. Соревнования для подбора талантов и поиска решений регулярно проводят такие гиганты как Google, Huawei, «Яндекс», Сбербанк и Mail.ru. На Хабре и других ресурсах нередко появляются истории о том, как кто-то подошел с креативом, постарался и заработал $20-$50 тысяч. Мы в Rubrain за такими тоже следим, некоторых пытаемся «выцепить» себе. А иногда для нестандартных задач создаем контесты на HackerRank.

Успех и широкая известность чемпионата (а также сумма финансовых наград) в основном зависят от платформы, на которой он проводится. Если вы хотите устроить хорошее онлайн-соревнование или поучаствовать в нём, чтобы побороться за приз, есть 11 вариантов:

Читать далее