Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 13 лет назад, По-русски

Это уже стало доброй традицией, что когда я еду в поезде или нахожусь в командировке, то вношу изменения в testlib. Видимо, причина тому — невозможность погрузиться в сложную задачу с большим контекстом по Polygon/Codeforces, но желание сделать что-то полезное здесь и сейчас.

Напоминаю, что testlib — мощная библиотека и стандард де-факто для подготовки задач по программированию, если вы используете С++. С помощью testlib можно значительно упростить подготовку: валидаторов, генераторов, чекеров и интеракторов. Все эти программы ниже буду называть testlib-программами.

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

Короткий список основных изменений:

Улучшена совместимость с компиляторами

В промежуточных версиях были сложности с компиляцией testlib-программ в Borland C++, некоторых версиях g++ и Microsoft Visual Studio C++. Всё это было исправлено, текущая версия компилируется в Borland C++ 5.6.4, g++ версий 0.7.2 и 0.8.1, Microsoft VS C++ версий 2005, 2008, 2010 и 2012.

Производительность

Сделаны некоторые улучшения производительности. Например, ранее ensure (функция наподобие assert, приводит к аварийному останову testlib-программы, если аргумент равен false) приводил к созданию std::string даже, если вызов не приводил к аварийному останову.

Другое

  • У InStream больше нет доступных конструктора копирования и оператора присваивания. Это запрещает передавать объекты InStream по значению, ведь такая передача является логической ошибкой.
  • Добавлена функция disableFinalizeGuard(), чтобы отключить проверку вызова quitf в чекере и readEof в валидаторе перед выходом. Честно говоря, так и не понял зачем это надо было, но просили. Видимо, для каких-то хакерских целей из-за нетипичного использования testlib.
  • Добавлена функция expectedButFound для выхода с красивым сообщением. Вот примеры использования: expectedButFound(_wa, 5, 6) — будет выход с _wa и сообщением типа expected 5, but found 6, еще пример expectedButFound(_wa, 5, 6, "test case %d", 13) завершит работу с _wa и сообщением test case 13: expected 5, but found 6. Умеет сам красиво форматировать вещественные числа и сокращать сверхдлинные строки (добавлять в середине многоточие).

Создание InStream от строки

Теперь всю мощь InStream можно применять для произвольной строки. Т.е. вычитывать данные с помощью всяких readToken и проч. можно из произвольной строки. При создании InStream следует указать тот поток, от которого унаследуется поведение в случае ошибок. Например, InStream yesOrNo(inf, "YES"). Может быть полезно в случае сложных разборов вывода (например, если удобно прочесть строку, что-то в ней проверить, а потом еще попарсить ее с помощью InStream).

Warnings

Неугомонный PavelKunyavskiy помог локализовать и закрыть пачку warnings в g++. В настоящее время testlib не порождает warnings даже при ключах -Wall -Wextra -Wconversion.

Опциональный новый вердикт: Unexpected EOF

Если скомпилировать с -DENABLE_UNEXPECTED_EOF, то при попытки прочитать что-то из потока произойдет вердикт unexpected eof, если этого чего-то в потоке нет. Код выхода по умолчанию: 8. Полезно для интеракторов, так как иначе они могут путать некоторые вердикты.

Исправления ошибок

  • выход с вердиктом о частичном решении класса 1, т.е. так: quitf(_pc(1), "...message..."); приводил к неправильному поведению;
  • генератор случайных чисел всегда оставлял один из битов нулевым (имеет значение только при генерации long long). Теперь рекомендуется явно указывать текущую версию генератора случайных чисел в генераторе вот так registerGen(argc, argv, 1);
  • было некорректное поведение при чтении nan в качестве double на некоторых компиляторах;
  • иногда неправильно обрабатывался дефис в паттернах для валидаторов/генераторов.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +43
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Школа закончена, команды разъехались, а у меня короткий перерыв между двумя сборами. Очень хотел опубликовать все результаты и статистику, но выяснил, что все эти данные уехали в лагерь Дубки вместе с выездным сервером тестирования. Завтра приеду туда и попробую залить всё это в интернет. Вот результаты тренировок и статистика:

Поздравления победителям:

  • 1 место: Уральский федеральный университет: Merkurev, kb., KuchumovIlya
  • 2 место: Саратовский государственный университет: fcspartakm, kuviman
  • 3 место: Саратовский государственный университет: HolkinPV, ikar

Кроме того, небольшие дополнительные сувениры достались командам УрФУ и СпбГУ. В одном из контестов я решил принять участие, а для атмосферности пообещал всем участникам, кто меня обойдет, футболки Codeforces. Конечно, у меня был план занять первое место и сэкономить на футболках :) Однако, я много тупил и отстал по штрафу от этих двух команд.

Вот в этом посте Артем Седанов отлично описал как всё было. Кое-где тему не раскрыл. Например, он оказался не фанат сауны — а в сауну мы ходили трижды. Впервые за все годы проведения сборов, популярность такого отдыха возрастала с каждым посещением :) Обычно на третий раз ходили только самые любители, в этом же году были многие. В сауне обновили печку, теперь ее можно охарактеризовать одним словом — "огонь!". Так что игра в крокодила в парной приобрела особый колорит. Наш местный вид спорта — бег из парной в Волгу пришелся по вкусу многим. Пару раз был проведен эксперимент на живых людях "поедание мороженное в парной" — оказалось, что съедается оно быстрее, чем тает.

В этом году коллектив участников оказался очень дружным. Мафия и какие-то неизвестные мне игры, поседелки с гитарой, дорешивания (часто команды помогали друг другу) — все это было каждый день. Было в самом деле приятно работать в таком коллективе.

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

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

UPD: Вот появились впечатления от Миши Кольцова (ItsLastDay). Очень интересно написано. Спасибо!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +44
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Ура-ура!

Мы двигаемся вперед по ускорению тестирования. В самом деле, когда на раунд регистрируются 3500+ участников, то тяжело успеть протестировать всё на 9 компьютерах Core 2 Duo E6750, 2.66 Ghz, 3Gb памяти.

Как я уже писал, у СГУ недавно появился замечательный класс с 20ю новенькими i5-3470, 8Gb. После небольшого исследования оказалось, что если подразогнать их множителем до 3.5Ghz (конечно, отключив всякие turbo boost и проведя многочасовое исследование на стабильность работы в таком режиме), то скорость их работы примерно равна удвоенной скорости старых тестирующих машин. Это очень удобно, так как позволит в будущем просто поделить все ограничения по времени в задачах на 2.

Только что мы перевели тестирование на использование новой техники, и тестирование осуществляется пока в режиме совместимости. Это значит, что все ограничения времени перед запуском программы делятся на 2, программа исполняется, а в конце время её работы умножается на 2. На самом деле, если вы не используете отсечения по времени или еще какие-то сомнительные трюки, то особой разницы вы можете и не обнаружить.

Старые тестирующие компьютеры в настоящее время не используются.

Если быть предельно точным, то новые компьютеры всё-таки отстают от 2x старых. То есть в режиме совместимости нормально заметить небольшое падение скорости выполнения.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +104
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

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

Недавно Володя Якунин (VladimirYakunin) заглянул к деканат факультета компьютерных наук и информационных технологий Саратовского ГУ. Надо сказать, он не просто выпускник факультета, но и олимпиадник со стажем — 5-е место на NEERC 2009, серебряная медаль в финале ACM-ICPC 2010. Декану А.Г. Федоровой он задал простой вопрос: «Чем я могу помочь родному факультету?» Они посовещались и вот результат: Владимир приобрел и подарил новый компьютерный класс (20 современных компьютеров). Класс уже готов к работе и ожидает студентов!

Кстати, ходят слухи, что в тех самых соединенных штатах, это довольно нормальная практика. Выпускники помогают альма-матер. Это достойно, уважительно, престижно. Яркий, но далеко не единичный пример — корпус Билла Гейтса «Gates Computer Science Building» в Стэнфорде. В России это единичные случаи. Надеюсь, что только пока. Мне кажется, здесь не правильно думать в стиле "был бы у меня камаз денег, я бы...". Володя — программист известной IT-компании, но не магнат и опиумными плантациями не владеет.

P.S. Не дожидаясь пока новые компьютеры приедут в Центр олимпиадной подготовки программистов Саратовского ГУ, мы планируем перенести тестирование Codeforces в класс Володи.

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

Полный текст и комментарии »

  • Проголосовать: нравится
  • +119
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

ABBYY Cup 3.0 — Finals уже вот-вот начнется, желаем удачи всем участникам!

По ссылке вы можете следить за текущими результатами финала ABBYY Cup 3.0.

Чтобы не было скучно всем остальным, ABBYY и Codeforces проводят неофициальную онлайн-трансляцию, которая начнется сегодня в 19:30.

Этот раунд будет:

  • рейтинговым
  • по модифицированным правилам ACM-ICPC (задачи делятся на подзадачи, засчитываются только полные решения подзадач, каждая подзадача оценивается в баллах, штраф начисляется как в ACM-ICPC)
  • открытым для любых участников обоих дивизионов (кроме финалистов кубка)
  • продолжительность — 2 часа

Удачи!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +140
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Всем привет.

Если вам не хочется спать и нечего делать — присоединяйтесь к Testing Round 8. Спасибо.

Спасибо за участие. До встречи завтра на раунде MemSQL!

Полный текст и комментарии »

Анонс Testing Round 8
  • Проголосовать: нравится
  • +24
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Наше сообщество продолжает расти и развиваться! Мы рады сообщить, что недавно зарегистрировался стотысячный пользователь Codeforces. Спасибо всем, кто помогает двигать вперед проект — авторам задач, тестерам, партнерам и, конечно, всем членам сообщества. Отдельные слова благодарности компании ВКонтакте!

Приятной статистики не бывает много. Вот еще немного цифр:

  • наша база данных содержит более 3,5 миллионов отосланных вами решений,
  • количество задач приближается к 3000,
  • количество посетителей сайта в месяц превосходит 400000,
  • количество просмотров страниц в месяц составляет примерно 5000000.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +244
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Добрый день.

Коротко напомню хронологию. После введения функции "организации" группа участников из Самары регистрирует "Natаlia Fаn Сlub" как организацию. Очевидно, учебным учреждением эта инициатива не является, впрочем как и компанией. Услышав о ней впервые, попытался загуглить релевантную организацию — безрезультатно.

Не выявив каких-либо признаков организации, она была удалена. Впрочем, инициаторы оказались настойчивыми и еще пару раз её регистрировали, а я пару раз ее удалял.

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

Требуй где-нибудь в другом месте.

Приведи аргументы значимости NFC как организации. Варианты:

  • внешние упоминания деятельности в неаффилированных источниках
  • упоминания деятельности в СМИ
  • релевантные ссылки в топе в поисковиках по запросу NFC
  • наличие понятных и существенных результатов деятельности
  • достоверное существование широкого круга членов NFC, участвующих в работе NFC

В настоящий момент все выглядит как расширенное использование Samara SAU Teddy Bears, думать об этом как об организации не представляется возможным.

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

Для лучшей демонстрации своей позиции приведу текст моего комментария на вопрос по теме:

Мне кажется, что здесь все довольно естественно. Организация – это не группа в ВК или название команды. Использование этой функциональности в качестве своеобразного статуса, для самовыражения и проч. противоречит идеи организаций и их рейтинга, и такое будет модерироваться. Так уже были попытки у участников через Codeforces донести свою личную позицию относительно судебного процесса над А. Навальным и причислить себя к розовым слонам. Правильное использование этого поля – указание учебного заведения, места работы. В отдельных случаях (например, школьник в большей степени обучается программированию не в школе, а в городском кружке, скажем, «Веселый байт») можно указать что-то другое, если указываемое играет роль места обучения или работы и является узнаваемым не только его членами. Роль индикатора может играть живой сайт и возможность по названию его найти, упоминания в СМИ организации, явные результаты ее деятельности, продолжительная история и т.д. Это примерно как со статьями на Wikipedia – несмотря на то, что у каждого есть возможность написать статью, не каждая тема достойна отдельной статьи и соответствует духу энциклопедии. Принадлежность организации определяется просто – для учебного заведения надо в нем учиться, а для места работы – работать в нем.

Отмечу, то организации были и будут модерируемым разделом. Его довольно легко захламить трешем, он потеряет наглядность и релевантность. Аналогия с Wikipedia мне кажется здесь довольно удачной. Заполнение поля "организация" дело сугубо добровольное, если вы не согласны с критериями администрации, то просто оставьте его пустым.

Администрация и, полагаю, сообщество ждет от Natаlia Fаn Сlub запрошенной информации. Уже прошло много времени — поторопитесь.

P.S. С удивлением обнаружил нечестный прием — в названии Natаlia Fаn Сlub выделенные буквы являются русскими. Я искренне полагал, что подобные трюки — удел коррупционеров на сайте госуслуг (http://navalny.livejournal.com/768312.html).

P.P.S. Из информации ниже администрация делает вывод, что NFC не соответствует обозначенным требованиям.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +91
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Общая информация

Саратовский государственный университет в первой половине августа проводит международную летнюю студенческую школу по программированию. Продолжительность школы — десять дней, школа пройдет с 5-го по 15-е августа.

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

Школа пройдет в живописном месте, на одной из саратовских баз отдыха на берегу Волги. Участники будут расселены в уютных номерах по 2-4 человека и обеспечены трехразовым питанием. На территории базы имеется собственный пляж и спортивные площадки.

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

Полный текст и комментарии »

  • Проголосовать: нравится
  • +71
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Вы же помните клевые промо-ролики о Всероссийском Открытом Чемпионате по программированию "КРОК-2013"? Вот и сейчас КРОК порадовал и преставил ролик уже о прошедшем чемпионате. Кто-то здесь увидит себя, кому-то будет интересно посмотреть как всё было.

Кроме того, доступен полный архив фотографий.

В заключении, пользуясь случаем, хочу выразить восхищение работой команды КРОК, их отношением к мероприятию, профессионализмом и проделанной работой! Было приятно и легко работать вместе :) Отдельные лучи благодарности Сергею Стрелкову, Георгию Могелашвили и Марии Довженко.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +121
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Да-да, Центр олимпиадной подготовки Саратовского ГУ это не только лекции, тренировки, домашние задания, дорешивания, мат. контесты, летние школы, олимпиады, подготовка задач для раундов Codeforces и помощь в разработке Codeforces, но и просто приятное общение с друзьями. Вот и сегодня, 19 мая, вместо того, чтобы готовиться к предстоящей сессии (а кому-то писать диплом), мы отправились на природу. К сожалению, мероприятие пересеклось с раундом, так что координатор задач Gerald и автор раунда gridnevvvit присоединиться не смогли.

В результате нас оказалось 16 человек, вот некоторые из них:

Пишите в комментах про кого забыл, наверняка же не все.

На место встречи пришло пару человек, кто мало ходил ко мне на занятия. Так что, чтобы определить, что люди наши, я задал пару вопросов: «Что ищет алгоритм Дейкстры?», «За какую асимптотику работает?». Тест был пройден, под недоумевающие взгляды людей на остановке.

Отдохнуть получилось весело и клево. Мы посетили парк приключений «ZaDOOR», в программе были забавы и конкурсы, а затем веревочный курс. К сожалению, на фотографии он не попал, так как участвовали все, фотографом никто быть не захотел. Если коротко – то мы разбились на команды примерно по 5 человек и должны были пройти серию веревочно-подвесных препятствий. Все это дело происходило над землей. Было несколько дощатых площадок, а их соединяли такие вот препятствия. Собственно, чтобы перейти с одной площадки на другую надо было пройти препятствие. Всё верно, лучше всего было обойти весь маршрут эйлеровым путем, что и сделала одна из команд. Мы, например, эту часть пофейлили и одно из препятствий (пару шатающихся подвестных мостков, самое сложное попасть с первого на второй) прошли два раза. Кстати, некоторые из препятствий оказались совсем непростыми.

Потом желающие осваивали скалодром, стреляли из луков и арбалетов и даже совершали скоростной спуск с высоты (я переживал за будущее Codeforces, когда разработчик MaximShipko занялся этим экстримом).

Последние несколько часов отдыхали на природе самостоятельно. Запалили огонь, достали мячи. Отлично пошли бутеры с жаренными сосисками, хотя закупились ими с запасом – в моем холодильнике прибавилось этого добра. Успели поиграть в «шляпу» (кое-кто знатно тупил) и попинать мяч.

Без нескольким минут 17:00 я вспомнил о раунде, достал ноут, поймал 3G и достоверился, что все работает стабильно. Вроде бы раунд удался, спасибо авторам и Gerald-у. Приятно порадовали моя супруга LLLike и дочурка (пока без хэндла) — заскочили на пару часиков, навестили.

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

Полный текст и комментарии »

  • Проголосовать: нравится
  • +87
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Уже совсем скоро в офисе компании КРОК состоится финал чемпионата. Позади день с пробным туром и Code Game Challenge. В суровой борьбе убедительную победу в Code Game Challenge одержал tourist!

Кроме того сегодня состоится онлайн-раунд по задачам финала, этот раунд начнется в 19:00 и будет идти 2.5 часа. По результатам раунда будет обновлен рейтинг. Обратите внимание, что к этому времени будут доступны результаты финала, так что участники онлайн-раунда будут лучше представлять предполагаемую сложность задач.

Всем удачи!

Соревнование закончено. Победителями стали:

Полные результаты

Полный текст и комментарии »

  • Проголосовать: нравится
  • +121
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

На самом деле в КРОК я и MaximShipko приехали еще вчера. За это время, совместно с кроковцами, успели настроить 40 компьютеров в учебном классе (даже как-то жалко, что большинство будет использовать ноуты), настроить инфраструктуру Code Game Challenge и готовы к появлению участников.

Совсем скоро состоится Чемпионат КРОК 2013 - Пробный тур финального этапа. Не стоит удивляться, если часть функционала сайта будет ограничена. В настоящий момент основная цель — основное онсайт-мероприятие.

Напомню, что участников сегодня так же ждет развлекательное соревнование по программированию AI.

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

Полный текст и комментарии »

  • Проголосовать: нравится
  • +32
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

12-го мая 2013 в 00:00 (да-да, в полночь!) состоится Testing Round 6. Цель этого раунда — хорошенько протестировать платформу. Недавно были сделаны некоторые улучшения/нововведения. Все изменения лежат в недрах бэкенда Codeforces и не будут сильно заметны участникам, однако они затрагивают довольно большое количество кода.

Приглашаю вас принять участие. Раунд будет происходить по схеме Div.2 + неофициальное участие Div.1. Он будет состоять из четырех-пяти задач, как определенная разминка — будет интересно всем. Я попрошу не участвовать тем, кто живет в Саратове — вам эти задачи могут оказаться знакомы. Претесты в задачах будут необычно слабыми, чтобы спровоцировать побольше взломов. Конечно, раунд не будет влиять на рейтинг.

Спасибо всем, кто примет участие!

P.S. Такое странно время выбрано не случайно — в выходные лучше всего работать по ночам!

Полный текст и комментарии »

Анонс Testing Round 6
  • Проголосовать: нравится
  • +58
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Ура-ура! Завершив многоходовую комбинацию я-Кормен-ralekseenkov, мы готовы отдать должное героям 2012-го года. В этом году (спасибо, Томас!), лауреаты Медали Кормена получат не только медали, славу и почет, но и новую книгу Томаса Кормена "Algorithms Unlocked" с личной подписью автора!

Лауреатами Медали Кормена за 2012-ый год стали:

  • tourist (Геннадий Короткевич) — Codeforces Best Participant 2012
    Геннадий удерживает первое место в рейтинге Codeforces, продолжает активно участвовать и уже не всегда даже третье место в раунде приносит ему плюс к рейтингу. Желаем Геннадию новый побед, тем более финал ACM-ICPC 2013 ведь так скоро!
  • witua (Виталий Герасимов) — Codeforces Best Problemsetter 2012
    В 2012-ом году Виталий неоднократно радовал нас интересными задачами. Благодаря ему, мы отлично знаем всевозможные свойства счастливых чисел и маленьких слоников. Спасибо Виталию за отличные задачи!
  • Nickolas (Мария Михайлова) — Codeforces Spirit of Community 2012
    Мария — автор необычных раундов, активный блоггер 2012-го года, удостоена новой номинации. Затеи Марии, нестандартные и яркие, сделали жизнь сообщества веселее и разнообразнее.
  • Alex_KPR (Александр Куприн) – Codeforces Best Blogger 2012
    Все мы с удовольствием читали повествования Александра с различных значимых событий спортивного программирования 2012-го года.

Напоминаем, что Медали Кормена присуждаются уже третий год. [tourist] уже третий год подряд становится лучшим участником, а Alex_KPR – лучшим блоггером в оба года присуждения этой номинации. В моей любимой номинации «Лучший автор задач Codeforces» победителями становились: в 2010-ом году natalia (Наталья Бондаренко), а в 2011-ом году Ripatti Артём Рипатти.

Очень надеемся, что лауреаты прошедшего года будут нас радовать своими талантами и в 2013-м году.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +253
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Как известно майские праздники — это праздник труда и трудящихся. Поэтому 2-го мая бездельничать не пришлось (надо же соответствовать названию праздника). Встречайте новые языки на Codeforces:

  • Python 3 (3.3.1)
  • MS C# .NET 4
  • Go (1.1 RC1)

Я даже предпринял попытку настроить Clojure, но выяснилось, что благодаря его динамической натуре и прочим AOT, простейшее решение A+B работает на нем около 1 секунды. Видимо как-то можно компилировать решения прям в байткод сразу, но пока я не разобрался. Может есть специалисты?

А пока раунд далеко я призываю вас попробовать новые языки.

С праздником!

P.S. В качестве дополнительного бонуса — Python 2 был обновлен до 2.7.4.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +216
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Совсем скоро стартует Квалификационный раунд Всероссийского Открытого Чемпионата по программированию "КРОК-2013". Раунд будет идти двое суток, мы надеемся каждый сможет найти удобное себе время для участия. Этап начнется 13 апреля в 00:00. Общий список зарегистрированных на Чемпионат доступен по ссылке.

Чтобы пройти в Раунд 1 вам надо принять участие в квалификации. Из квалификационного раунда в Раунд 1 проходят все участники, набравшие не меньше баллов, чем участник на 2000-ом месте (при условии положительного числа набранных баллов). В раунде вас ждут несколько задач, примерно расположенных по возрастанию сложности. Во время квалификации задачи тестируются системой только на претестах, а системное тестирование состоится после окончания квалификации (т.е. всех 48-и часов мероприятия). Претесты не покрывают все возможные случаи входных данных, так что тщательно тестируйте свои программы! Взломов, падения стоимости задач во время квалификации нет.

Раунд продлится 48 часов, но это не значит, что мы призываем вас все это время провести за решением задач. Мы надеемся, что большинство участников справятся с задачами (или с большинством задач) за более короткий срок. Такая длительность раунда выбрана для того, чтобы каждый нашел удобное время для участия.

До окончания раунда категорически запрещается публиковать где-либо условия задач/решения/какие-либо мысли и соображения о них. Запрещено общаться на тему задач, обсуждать условия и проч. Будьте честными и пусть в Раунд 1 пройдут достойные. Как только квалификация будет завершена, можно будет обсуждать задачи и решения.

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

P.S. В этом раунде допускаются к участию только зарегистрированные участники Чемпионата. Зарегистрироваться для участия в Чемпионате можно здесь. Особо расторопные участники успели зарегистрироваться до внедрения такой проверки, поэтому некоторые регистрации придется аннулировать. Кажется, это не принесет вам сложности — так как впереди еще двое суток.

UPD: Тестирование завершено. По предварительным данным все участники с не менее чем 950 баллами проходят в Раунд 1. Граница может быть немного изменена из-за удаления читеров.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +103
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

В связи с тем, что у TopCoder сорвалось проведение TCO 2013 Round 2A, а перенесли они его со снайперской точностью на запланированный нами ранее Codeforces Round #177, мы решили подвинуть наше мероприятие. Признаюсь, моим первым побуждением было оставить всё как есть — TopCoder прекрасно знал о Codeforces Round 177, и я не могу одобрить такой подход к решению своих технических сложностей. С другой стороны, сообщество, а особенно автор предстоящего раунда, уважаемый witua, не виноваты — вам хочется участвовать, а автору интереснее, когда раунд собирает аншлаг. К тому же, координатору задач Gerald-у пришлось бы несладко, разрываясь между работой и TCO. Поэтому Codeforces Round #177 сдвинут на время запланированное для раунда #178, а тот будет перенесен чуток вперед.

Мы приносим извинения за изменения в расписании. Надеемся, увидеть вас среди участников Codeforces Round #177. Будет весело!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +400
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Ну круто-то же! Сотрудники КРОК не перестают меня удивлять инициативными подходом к делу. На этих роликах вы увидите не нанятых актеров, а сотрудников КРОК. Признаюсь, я искренне по-хорошему удивился актерским способностям Георгия, Марии, Михаила — все они непосредственные организаторы олимпиадных инициатив КРОК.

Кстати, если вы знаете что-то подобное — делитесь в комментариях. Так же интересно было бы собрать идеи сюжетов для подобных роликов — о где ты, креативный олимпиадник?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +91
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

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

Итак, в добавил тренировку 2012-2013 Московская олимпиада школьников по информатике, 10-11 класс. Вот ссылка на официальную страницу и результаты 10-11 классов. Поздравляю победителя Павла pashakovalenko Коваленко!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Студентам Варшавского университета дали задание по популяризации алгоритмов в Сети. Вот что получилось.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +160
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Давайте делиться впечатлениями о прошедшем отборе.

Самый забавный момент был у меня, когда за 10 минут до конца моя C падала с assert-ом, что говорило о том, что одна структура данных считается с отличием от наивного решения. Поискал баг, не нашел. Закомментил assert и скачал input. Не знаю чем закончится, но на инпутах rng_58 и Petr мое решение выдает ответы как у них :)

Полный текст и комментарии »

  • Проголосовать: нравится
  • +45
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, перевод, По-русски

Welcome to the contest of Saratov State U on Petrozavodsk Winter Training Camp 2012-2013. This contest was prepared with diligence and love by jury team of ACM-ICPC NEERC Subregional (Saratov) Contest. Here is the complete list of writers:

Thanks to all of them!

All the authors invite you to take part in the contest virtually in Gym, if:

  • You didn't take part in it previously
  • You (or your team) is high skilled that you will take part (or took part) on ACM-ICPC World Finals or other high-level competitions. The problemset seems to be hard for not experienced participants.

Hope, you will enjoy the contest!

Contest link: 2012-2013 Зимние Петрозаводские сборы, Контест Саратовского ГУ (XIII Открытый Кубок, Гран-При Саратова).

Полный текст и комментарии »

  • Проголосовать: нравится
  • +28
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

Всем привет!

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

  • Теперь тренерами могут стать не только красные, но и те, кто обладает оранжевым цветом хэндла, участвовал в офиц. соревновании Codeforces не более полугода назад и принял участие не менее чем в 30 рейтинговых соревнованиях Codeforces). Это изменение увеличивает количество потенциальных тренеров примерно вдвое. Так что мы приглашаем вас к участию в тренировках уже в новом статусе!
  • Добавить контест из Polygon в Тренировки стало совсем просто! Достаточно скопировать данные из contest.xml из интерфейса контеста в системе Polygon в contest.xml в папке sandbox контеста в Тренировках (используйте FTP).
  • Внедрена защита от потери данных в формах проектов Codeforces и Polygon. Теперь в полях ввода для текста справа сверху появляется полупрозрачная кнопка «Черновики», с помощью которой можно посмотреть (или выбрать) какие-то предыдущие редакции текста. Сохранение в эти черновики происходит автоматически. Теперь в случае неожиданного падения браузера или потери сессии ничего страшного не случится – ваш текст будет возможно восстановить из черновиков.
  • Проделана работа по внедрению проталкивания событий о тестировании из системы в браузер, что видно на странице «Статус». Работа пока не закончена, есть свои заморочки, но базово система работает.
  • Обновлен testlib до 0.8.7: улучшена производительность функции ensure(), readStrictDouble больше автоматически не определяет как невалидное число, состоящее более чем из 20-ти цифр, исправлены warnings при компиляции, починена компиляция в некоторых экзотических случаях.
  • В системе Polygon улучшена производительность в случае задачи с большими ручными тестами.
  • Условия контестов и задач в системе Polygon теперь имеют логичные URLs.
  • Исправлены ошибки, связанные с тем, что в некоторых старых задачах стандартный чекер автоматически обновляется, но не обновляется testlib. Это приводит к невозможности использования чекера в такой задаче, так как он не компилируется с устаревшим testlib.h. На всякий случай внедрена политика автообновления для testlib, теперь совсем просто его можно обновить.
  • Если решение в системе Polygon помечено как Main или Correct, но получает OK на тесте со временем более половины от ограничения по времени, то такая ситуация подсвечивается в invocations. Аналогично, подсвечивается ситуация, когда TL-решение получает TL, но при этом получает OK при удвоенном ограничении по времени.
  • В дескрипторе задачи в системе Polygon добавлен атрибут sample для теста. Он имеет значение sample="true", если это тест из условия. Этот атрибут опциональный, его отсутствие эквивалентно sample="false".
  • Обновлены версии компиляторов до крайне свежих.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +180
  • Проголосовать: не нравится

Автор MikeMirzayanov, 13 лет назад, По-русски

На последнем тестовом раунде (Codeforces Testing Round 5) в качестве сложной задачи была предложена моя задача 267C - Berland Traffic. Задача интересная и, как показали результаты, непростая. Придумал эту задачу я довольно давно, а дал ее (с другим названием и легендой) на школьные летние сборы в Малоярославце (2003 года).

Сегодня испытал забавное ощущение, заметив в контесте Варшавского университета Петрозаводских зимних сборов 2012 задачу "I. Uniform Flow". Глянул тесты — и тесты мои :-) Забавный круг совершила эта задача!

P.S. Кстати, задачу эту я считаю довольно полезной. Полагаю, схожие идеи иногда могут встретиться и в других задачах.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +35
  • Проголосовать: не нравится