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

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

Например, Питер Норвиг буквально недавно рассказал, что в Гугле есть негативная корреляция между победами человека на олимпиадах для программистов и его успехами в работе. По его мнению, спортивное программирование приучает концентрироваться на сиюминутных задачах, тогда как на работе надо думать о будущем проекта.

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

Все этапы Яндекс.Алгоритма в этом году пройдут в онлайне, так что поучаствовать в нём смогут и те, кто не готов куда-то ехать. Алгоритм состоит из нескольких отборочных раундов, в каждом из которых нужно решить пять задач за 100 минут. В финал, который состоится 6 августа, выйдут 25 лучших по результатам отбора. Тренировочный раунд, до которого стоит зарегистрироваться, пройдет 3 мая.

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

Итак, вчера мы с вами поиграли в джавовский вариант «Интеллектуальное казино против знатоков», и при этом, при всем уважении кам, телезрители выиграли! Если же я вдруг упустил знатоков, решивших вчера хотя бы три задачи — пишите мне в личку, и награда найдет своего героя!

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

Под катом — ответы на вчерашний раунд и суперблиц! Против знатоков сегодня играет телезритель из Петербурга Андрей apangin Паньгин.

Новый суперблиц по Java-хардкору - 1

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

Простые задачи на Java. Слабо решить все? - 1

Привет! Мы тут собрали тусовку одних из самых крутых русскоязычных Java-практиков и попросили их дать по задаче, чтобы вы сломали зубы, мозг и бились об стену, пытаясь понять, как это работает. Собственно, мы поспорили на бутылку Хеннеси, что за 12 часов после публикации никто не пришлёт все правильные ответы. Я уверен, что кто-то сможет. Поэтому если вы это сделаете первым – с меня бутылка.

Первая задача простая, она от телезрителя Николая Гарбузова, специалиста по скалкам, любящего рекурсию, паттерн-матчинг и магию компиляции:

Скомпилируется ли следующий аспект AJC компилятором?
Если да — то что он выведет на консоль при компиляции?

public aspect QuizAspect {
    public static int count(int i) {
        return i++;
    }

    before (int n) : execution(public int QuizAspect.count(int)) 
            && args(n) && if(QuizAspect.count(1)>1) {
        System.out.println("QuizAspect " + n);
    }
}

Пока просто, правда?Читать полностью »

Понятие факториала известно всем. Это функция, вычисляющая произведение последовательных натуральных чисел от 1 до N включительно: N! = 1 * 2 * 3 *… * N. Факториал — быстрорастущая функция, уже для небольших значений N значение N! имеет много значащих цифр.

Попробуем реализовать эту функцию на языке программирования. Очевидно, нам понадобиться язык, поддерживающий длинную арифметику. Я воспользуюсь C#, но с таким же успехом можно взять Java или Python.

Наивный алгоритм

Итак, простейшая реализация (назовем ее наивной) получается прямо из определения факториала:

static BigInteger FactNaive(int n)
{
    BigInteger r = 1;
    for (int i = 2; i <= n; ++i)
        r *= i;
    return r;            
}

На моей машине эта реализация работает примерно 1,7 секунд для N=50 000.

Далее рассмотрим алгоритмы, которые работают намного быстрее наивной реализации.
Читать полностью »

Если вы хотите построить успешную карьеру в сфере разработки ПО, ни в коем случае не увлекайтесь спортивным программированием и участием в конкурсах.

Такой вывод следует из беспристрастной статистики и дата-майнинга рабочих показателей сотрудников Google, рассказал Питер Норвиг в лекции, прочитанной 26 марта 2015 года в Венском техническом университете.


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

Разбор задач первого квалификационного раунда Russian Code Cup 2015 - 1

В субботу 28 марта прошел первый квалификационный раунд Russian Code Cup 2015. 3093 программиста решали задачи в течение двух часов, из них хотя бы одно правильное решение прислали 1012 участников. Верное решение для всех пяти задач сдали двое: Геннадий Короткевич и Петр Митричев. Всего участники отправили на проверку 4069 решений, 2517 на С++, 705 на Java, 425 на Python, 318 на C#. Правильных решений — 1745, из них на С++ прислано 1099, на Java — 339.

Первым за рекордные 2 минуты и 2 секунды решил задачу A (Магические карточки) победитель RCC 2014 года — Геннадий Короткевич (tourist). Он же первым решил задачи B (Домашнее задание) за 6:50 и C (Конгресс юных любителей) за 25:43. Задачу D (Расшифровка) за 51 минуту и 42 секунды решил победитель RCC 2013 года Петр Митричев (Petr). А последнюю задачу E (Занимательная криптография) за 1 час 2 минуты и 52 секунды решил участник из Японии (anta). Последняя успешная попытка совершена Михаилом Тихомировым за 6 секунд до конца соревнования. Самая простая задача A, самая сложная задача — E, задачу E сдало всего 13 человек.
Читать полностью »

Разбор задач тренировочного warmup-раунда Russian Code Cup 2015 - 1

В воскресенье прошел тренировочный warmup-раунд Russian Code Cup. Первое место занял Михаил «mmaxio» Майоров из Перми. Второе — Игорь «kraskevich» Краскевич из Москвы. Третье — Валентин «ValenKof» Кофман из Москвы. Поздравляем победителей!

Впереди квалификационные раунды чемпионата. Напоминаем, что первый квалификационный раунд состоится 28 марта в 18:00 мск, а регистрация на чемпионат проходит на сайте http://www.russiancodecup.ru/ до начала третьего квалификационного раунда.

Russian Code Cup — это возможность для русскоязычных программистов со всего мира проверить свои силы и продемонстрировать мастерство, решая оригинальные задачи различной сложности, а также заявить о себе экспертному IT-сообществу. Олимпиада проходит в три этапа: квалификационные раунды, отборочный тур и финал, — на каждом из которых участникам олимпиады предлагается от четырех до восьми разноплановых задач. Задания и техническую часть соревнования обеспечивают специалисты Mail.Ru Group и эксперты Университета ИТМО — соорганизатора Russian Code Cup.

А сейчас разберемся с решением задач warmup-раунда.

Задача A. Воздушные шарики
Читать полностью »

Привет Хабражителям!

В 2014 году мы провели свой первый совместный контест по спортивному программированию совместно с Codeforces, об этом мы писали здесь.

Коротко о том, как это было:

Контест состоял из 6 задач, на решение отводилось 2,5 часа (ознакомиться с задачами прошлого года и даже попробовать свои силы в их решении вы можете здесь).
Конечно же, даже на сугубо девелоперском мероприятии мы остались верны себе, поэтому все задачи были придуманы по мотивам наших игр, и, разумеется, мы их заботливо проиллюстрировали:

ZeptoLab Code Rush 2015 уже близко - 1

Впервые за всю историю Codeforces в контесте приняли участие одновременно более 2148 человек (зарегистрировалось более 4600 (!) со всего мира. К слову сказать, первые 3 места заняли Читать полностью »

Началась регистрация на пятый ежегодный чемпионат по спортивному программированию Russian Code Cup - 1

С 5 марта открыта регистрация на участие в главном российском чемпионате по спортивному программированию — Russian Code Cup (RCC). Победители чемпионата завоюют звание лучших программистов года и разделят призовой фонд в размере 750 000 рублей. В RCC ежегодно принимают участие несколько тысяч русскоговорящих участников со всего мира. Они сражаются за звание не только самого талантливого, но и самого быстрого программиста, поскольку решение оригинальных и сложных задач чемпионата оценивается сразу по двум критериям: качество и скорость. Этот чемпионат дает молодым программистам прекрасную возможность продемонстрировать свое мастерство, получить признание профессионального сообщества и обратить на себя внимание крупных IT-компаний.
Читать полностью »

Социальная сеть ВКонтакте анонсировала чемпионат по программированию VK Cup в обновленном формате. Соревнование ориентировано на любителей алгоритмов, структур данных и просто фанатов problem-solving. К участию в чемпионате приглашаются те, кому уже исполнилось 14 лет, но не исполнилось 24 на момент регистрации. Кроме того, рабочий язык чемпионата — русский. В отличие от других подобных соревнований, участникам предлагается работать в командах по двое. Соревнование будет проходить на платформе Codeforces при содействии Саратовского ГУ.

Лучшие 20 команд по результатам отборочных интернет-этапов будут приглашены в финал соревнования, который состоится в июле 2015-го года в Санкт-Петербурге. Компания «ВКонтакте» покроет расходы на проезд и проживание финалистов, которые будут бороться не только за звание лучших из лучших, но и призовой фонд чемпионата:

  • 1 место — 1048576 рублей
  • 2 местo — 524288 рублей
  • 3 местo — 262144 рубля
  • 4-8 места — 131072 рубля
  • все участники Раунда 3 — фирменные футболки.
VK Cup 2015 - 1

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


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