Рубрика «Спортивное программирование» - 32

Когда мы взялись за подготовку задания для конкурса, нам хотелось сделать его интересным, сложным, но одновременно решаемым.

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

В качестве платформы была выбрана 64-битная версия ОС Windows. 64 бита — потому что использование Hex-Rays Decompiler для x86 сильно упрощает задачу, а под x64 декомпилятора пока нет. Да и вообще, 64-битные приложения уже стали обычным явлением.

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

Отчёт со Всероссийского Открытого Чемпионата по программированию
Первый день: как видите, многие финалисты со своими ноутбуками

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

Кто и откуда приехал?

Участвовало 3500 программистов со всей России, из стран СНГ и совсем немного — из других стран. К первому туру было отобрано 2000 участников, ко второму — 400, а в финал в Москве вышло 50 человек. Уровень в этом году был явно выше чем в прошлом: либо сказались тренировки и то, что турнир набирает известность, либо то, что в игру включились гости из других стран. Приезжали участники финалов прошлых лет.

В финал попало 16 москвичей, 14 петербуржцев, по двое жителей Екатеринбурга, Нижнего Новгорода, Саратова, один участник приехал из Новосибирска. Также в финал вышли по трое из Беларуси, Польши, Украины и даже один человек из Японии. По правилам турнира мы оплачивали дорогу всем, кроме жителей Польши и Японии, а проживание оплатили каждому участнику.Читать полностью »

Russian Code Cup 2013 – разбор задач 2 го квалификационного раунда
Вот и прошел второй квалификационный раунд Russian Code Cup. Майские праздники, многие разъехались кто куда… Однако для того чтобы пройти в отборочный тур, участникам второго квалификационного раунда пришлось побороться.
Как и в предыдущем раунде, зарегистрировавшихся было больше, чем приславших решения. Поэтому в числе принявших участие мы отражаем только тех, кто прислал хотя бы одно решение.
Майская жара и 5 задач, которые требуется решить за 2 часа:

  • задача A. Молекула
  • задача B. Морской бой
  • задача C. Пробка
  • задача D. Таблица
  • задача E. Космическая экспедиция

Условия и решение — под катом.
Читать полностью »

Стартовала вторая фаза конкурса Intel® Perceptual Computing Challenge

Неделю назад, шестого мая, официально стартовала вторая фаза конкурса Intel® Perceptual Computing Challenge. Поскольку в корпоративном блоге компании Intel на хабре так новость и не появилась, решил написать об этом сам. Подробности под катом.

Читать полностью »

Хакерские соревнования на Positive Hack Days III

Хотите побывать в шкуре одного из друзей Оушена, испытав себя в обходе самых современных систем охраны, или перевоплотиться в настоящего Доктора Зло и пустить под откос поезд? В обычной жизни такие приключения практически наверняка не закончились бы ничем хорошим, но, к счастью, есть форум Positive Hack Days и его конкурсная программа.

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

Школьник об олимпиадном программировании
Здравствуй!
Пишет тебе девятиклассник, призер регионального этапа всероссийской олимпиады по информатике. В последнее время я стал замечать, что у читателей повысился интерес к олимпиадам по программированию. Как их активный участник я постараюсь ответить на все вопросы, рассказать о своем пути, привести примеры реальных, запомнившихся мне задач.
Читать полностью »

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

Всё началось жарким летним днём где-то в июле 2012. На кухне местной ИТ-компании сидели несколько студентов и Леонид ВолковЧитать полностью »

Russian Code Cup 2013: разбор задач первого квалификационного раунда
В субботу, 13 апреля 2013 года, в 19 часов состоялся первый квалификационный тур. Несмотря на, казалось бы, несчастливую дату, для многих этот день оказался, наоборот, очень удачным.
В этом посте мы кратко расскажем об итогах первого квалификационного раунда и подробно разберем задачи, которые мы предлагали участникам.
В сегодняшнем разборе участвуют:

  • Олимпиада в Гномляндии
  • Один день Антона Сергеевича и его студентов
  • Проблемы хранения млурана в ядерной лаборатории Флатландии
  • Актуальный вопрос защиты планеты от метеоритов
  • Телепорты и то, какие препятствия они создают для кладоискателей

Читать полностью »

Олимпиадные задачи по программированию: что за зверь?Недавно мы анонсировали конкурс задач по спортивному программированию. Организаторы конкурса попросили написать короткое объявление о конкурсе в блог, но строгий редактор отказался печатать анонс без объяснения того, что же такое олимпиадная задача. Из этого родилась целая статья. Начнем, пожалуй, с примера олимпиадной задачи.

Этот же пример, чтобы по ссылке не ходить

ИТ-рестораны

ограничение по времени на тест: 4 секунды
ограничение по памяти на тест: 256 мегабайт
ввод: standard input
вывод: standard output

В городе N. очень плохо с дорогами, общепитом и IT-инфраструктурой. Всего в городе n перекрестков, некоторые пары которых соединены двусторонними дорогами. Дорожная сеть состоит из n - 1 дороги, по дорогам можно добраться с любого перекрестка на любой другой. Да, вы правы — дорожная сеть образует неориентированное дерево.

Недавно мэр города придумал способ, устраняющий проблемы с общепитом и IT-инфраструктурой, причем одновременно! Решено поставить на перекрестках города ресторанчики двух известных сетей кафе для IT-шников: «iMac D0naldz» и «Burger Bing». Так как владельцы сетей не дружат, категорически запрещается размещать рестораны двух разных сетей на соседних перекрестках. Есть и другие требования. Вот полный список:

  • в каждом перекрестке должен находится не более чем один ресторан;
  • каждый ресторан принадлежит либо «iMac D0naldz», либо «Burger Bing»;
  • каждая сеть должна построить не менее одного ресторана;
  • не существует пары перекрестков, которые соединены дорогой и на которых стоят рестораны разных сетей.

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

Помогите мэру проанализировать ситуацию. Найдите все такие пары (a, b), что a ресторанов может принадлежать «iMac D0naldz», b — «Burger Bing», а сумма a + b максимальна.

Входные данные

В первой строке входных данных содержится целое число n (3 ≤ n ≤ 5000) — количество перекрестков в городе. Далее в n - 1 строке перечислены все дороги, по одной дороге в строке. Каждая дорога задана парой чисел xi, yi (1 ≤ xi, yi ≤ n) — номерами соединяемых перекрестков. Считайте, что перекрестки пронумерованы от 1 до n.

Гарантируется, что заданная дорожная сеть представляет собой неориентированное дерево с n вершинами.

Выходные данные

В первую строку выведите целое число z — количество искомых пар. Далее выведите все искомые пары (a, b) в порядке увеличения первой компоненты a.

Примеры тестов

Входные данные

5
1 2
2 3
3 4
4 5

Выходные данные

3
1 3
2 2
3 1

Входные данные

10
1 2
2 3
3 4
5 6
6 7
7 4
8 9
9 10
10 4

Выходные данные

6
1 8
2 7
3 6
6 3
7 2
8 1

Первое, что бросается в глаза, это необычное условие. Такой подход сложился исторически: писать краткую математическую формулировку не принято. Обычно ее пытаются связать с реальной жизнью, ну или с не очень реальной. Например, в USACO героями всех задач являются фермер Джон и коровы. Прежде чем приступить к решению после прочтения условия, участнику требуется выделить математическую формулировку задачи.
Читать полностью »

Russian Code Cup: как это было, как это будет
В 2013 году Mail.Ru Group организует очередную, третью по счёту, международную олимпиаду для самых сильных программистов – Russian Code Cup 2013. Мы задумывали олимпиаду как способ популяризации программирования, поднятия престижа профессии (и, конечно, как отличный повод измерить свою скорость мысли на интеллектуальной гоночной трассе).
Russian Code Cup: как это было, как это будет
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js