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

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

Так как почти каждый член сообщества Codeforces умеет программировать, мы решили отказаться от wysiwyg редактора HTML и внедрить более программистский способ разметки текста. Конечно, технические тексты станет набирать значительно удобнее, а тексты будут выглядеть единообразнее.

Теперь мы используем вариант Markdown в качестве языка разметки для публикации постов в блог и комментариев (позже будет в личных сообщениях и, вообще, всюду). Так как мы используем дополнительные расширения, то разметку мы называем просто Codeforces Markup. Расширения Codeforces можно подглядеть в редакторе, описание остальных я опубликую здесь чуть позже. В Codeforces Markup менее навороченный синтаксис спец. тегов — двойные квадратные скобки заменены на одинарные (например, [problem:11A], [user:Petr], а можно так ~Petr).

Кроме того, улучшена типографика постов и комментариев.

Посмотреть описание Markdown можно по ссылкам:

Вот короткий список возможностей:

  1. вставка хэндла пользователя (по короткому тегу вида ~tourist);
  2. курсив и жирный текст (*курсив* и **жирный текст**);
  3. код внутри строки — return a == 0 ? b : gcd(b % a, a); (поместите код между символами `);
  4. ненумерованные, нумерованные и вложенные списки;
  5. заголовки;
  6. автозамена дефисов на тире (эвристика);
  7. автовставка ссылки по адресу, пример: http://codeforces.com/;
  8. таблицы и изображения;
  9. подсветка кода;
  10. "умная" расстановка кавычек;
  11. абзацы разделяются пустой строкой, переводы строк игнорируются;
  12. спец. теги Codeforces;
  13. значительно улучшено распознавание формул, можно писать "с вас $2";
  14. и многое другое!

Несколько примеров использования тегов Codeforces:

исходный код результат
~Ripatti - Лучший автор задач 2011 - Ripatti — Лучший автор задач 2011
[user:tourist] - лидер рейтинга tourist — лидер рейтинга
[problem:125E] - задача на графы, решите [problem:125E,ее] 125E - Компания MST — задача на графы, решите ее
результаты [contest:125] доступны по [standings:125,ссылке] результаты Codeforces Testing Round 2 доступны по ссылке
решение [problem:125E] - [submission:912139] решение 125E - Компания MST912139
[photoalbum:PicasaPublicAlbumURL] симпатично вставляет фотографии из альбома

Напоминаю, что на Codeforces реализован предпросмотр, так что не надо сумасшедших экспериментов по изучению Markdown в комментариях :)

MikeMirzayanov

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

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

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

27-го января были подведены итоги и награждены лауреаты. Ими стали:


tourist — лучший участник 2011

Ripatti — лучший автор задач 2011

Alex_KPR — лучший блоггер 2011
  • Лучший участник Codeforces 2011 года: Геннадий tourist Короткевич. Было произведен пересчет рейтинга, учитывая только раунды 2011 года. Геннадий возглавил таблицу результатов с существенным отрывом! По ссылке вы можете ознакомиться с его успехами на соревнованиях Codeforces.
  • Лучший автор задач Codeforces 2011 года: Артем Ripatti Рипатти. В 2011 году Артем подготовил и провел на Codeforces около 10 раундов, зарекомендовал себя не только как автор интересных задач, но и как ответственный партнер. Мы благодарны Артему за оказанную проекту помощь и надеемся на дальнейшее сотрудничество.
  • Лучший блоггер Codeforces 2011 года: Александр Alex_KPR Куприн. Блог Александра регулярно радовал читателей интересными статьями. Его отчеты о Russian Code Cup, финале ACM-ICPC, Петрозаводских сборах вызвали интерес не только у постоянных читателей, но и привлекли новых. Спасибо!
Проект Codeforces благодарит все участников, авторов статей за проявленный интерес, но особенное спасибо мы говорим всем авторам задач!

В блоге Петра Petr Митричева есть видео с награждения. Петр, спасибо!

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

Mike,

My apologies for the delay in responding. It has been an exceptionally busy term for me, teaching our new introductory course in Python (I'm learning the language along with my students), supervising our senior capstone project course, and chairing our department. You may post the following statement on your website:

Congratulations to Gennady "tourist" Korotkyevich (Best Codeforces Participant 2011), Artem Ripatti (Best Codeforces Problem Writer 2011), and Alexander "Alex_KPR" Kouprin (Best Codeforces Blogger 2011). Although Mike Mirzayanov hinted that we might be in for a change this year, I was not too surprised to see that "tourist" took the top participant spot once again. I applaud the winners and everyone else who takes part in Codeforces.

Tom Cormen
Professor and Chair
Dartmouth College Department of Computer Science
http://www.cs.dartmouth.edu/~thc/
Twitter: @thcormen

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

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

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

Не так давно в английскую Википедиа была добавлена статья о Петре Митричеве (Petr). В настоящее время идет обсуждение этой статьи на предмет удаления по причине недостаточной значимости. Вот цитата из обсуждения "I don't see how Petr is notable in Wikipedia standards. What makes him different from the hundreds or maybe even thousands of others who are on a similar level as him at competitive programming?".

Кстати, вот статья о выдающемся олимпиаднике из Штатов Рейде Бартоне. Кто для истории более ценен?

Было бы здорово, если те кто вник в правила Википедиа высказались бы в обсуждении в поддержу статьи о Петре.

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

Комментарии?

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

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

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

Сегодня, 19-го января в 12:00 мы открываем новый проект Codeforces::Тренировки. Через 30 минут, в 12:30 мы начнем первую тренировку, на которой вы сможете познакомиться с системой. Продолжительность тренировки – 3 часа. Приглашаем вас принять участие! Как и всюду в Codeforces::Тренировки, будут использованы ACM-ICPC правила.

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

UPD: Контест перенесен на 10 минут вперед. Все замечания по работе и предложения следует писать в виде комментариев в трекере проекта.

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

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

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

Постараюсь коротко, без эмоций.

Раунд 103, пользователь ZHULIKI_I_VORY. Кто-то довольно неплохо решающий задачи, скорее всего чей-то второй или третий аккаунт. Заходил на сайт с IP-адреса xxx.xxx.xxx.xxx (скрыто по просьбе), с которого так же заходили такие "пользователи": anonymous, Happy_New_Year, Happy_New_Year_1, I_love_natalia, Letter_to_Joulupukki, MEGAKILLER, notanonymous, Red_Joda, Santa_Claus, werbeH, Yoda. Да, среди них почти все в настоящий момент забанены как левые аккаунты. Кто из списка не забанен? I_love_natalia и MEGAKILLER.

Раунд 101, пользователи V_CHUROV и EDINAYA_ROSSIYA. Забанены за использование идентичного кода. Но на этом история не заканчивается, так как IP-адрес yyy.yyy.yyy.yyy (скрыто по просьбе), откуда заходил EDINAYA_ROSSIYA, оказался довольно любопытным. С этого адреса заходили: anonymous, EDINAYA_ROSSIYA, I_love_natalia, MEDVEPUT, MEGAKILLER. Знакомая компания? Не забанены из них только I_love_natalia (он же anonymous) и MEGAKILLER.

Раунд 100. Зеленый пользователь MEGAKILLER поразил жюри своей проворностью и расторопностью. Еще бы! За призовую футболку он неожиданно стал соперничать с красными кодерами на равных. Я специально подождал, а не проснется ли у него совесть? Нет. Он благополучно заполнил форму на получение футболки, нагло солгав в пункте "Отсылая форму, вы подтверждаете, что все внесенные данные соответствуют лично вам - победителю 100-го раунда."

Давайте посмотрим на исходные коды пользователей I_love_natalia (он же anonymous), MEGAKILLER, EDINAYA_ROSSIYA, V_CHUROV, ZHULIKI_I_VORY. Легко видеть, что у всех них не только общие IP-адреса, но и полностью совпадает стиль написания кода. Я, как преподаватель в области программирования со стажем более 10 лет и познакомившийся с кодом сотен учеников, заявляю, что манера написания - она как почерк. В данном случае очевидно, что это один и тот же человек.

Интересно, что нет ни одного упоминания о значимых достижениях Александра Константиновича Рябова (на которого выписана призовая футболка) в области спортивного программирования. Да-да, "Отсылая форму, вы подтверждаете, что все внесенные данные соответствуют лично вам - победителю 100-го раунда.". А ведь это один из сильнейших участников планеты! В "честной" борьбе он занял 48-е место среди 1900 участников со всего мира.

Кроме того, I_love_natalia (он же anonymous) неоднократно в комментариях сам признавался в создании двойных аккаунтов, регистрации аккаунтов скриптом и накрутках вклада.

Таким образом, были многократно нарушены следующие правила Codeforces:

  • "Не создавайте более одного аккаунта, если вы забыли пароль, то воспользуйтесь системой напоминания пароля."
  • "Не пытайтесь дестабилизировать работу как сайта, так и проверяющей системы. Ваши программы должны взаимодействовать только с консолью (для задач со стандартным вводом-выводом) или файлами входных и выходных данных."
  • Нарушены правила регистрации на раунд: "не используете несколько аккаунтов, а в соревновании принимаете участие со своего личного и единственного аккаунта".
  • "Отсылая форму, вы подтверждаете, что все внесенные данные соответствуют лично в вам - победителю 100-го раунда."

Кроме того, неоднократно нарушены правила элементарного уважения к сообществу. Участие в раунде с призами под левым аккаунтом с указанием левого человека в качестве победителя. Обман членов сообщества (например, следующий комментарий является ложью и опровергается логами системы "Первый раз - да. А потом, когда я поменял у своего placeholder-a ник с anonymous на notanonymous, оказалось, что нельзя поменять ник на имевшийся ранее, можно только зарегать... В общем, пока я регал почту, чтобы зарегать ник, кто-то зарегал anonymous-а. За 3 минуты поймали :(").

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

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

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

По причине многократного нарушения правил Codeforces Константин Дроздов, он же I_love_natalia, он же anonymous получает пожизненную дисквалификацию в системе Codeforces и ему запрещается участвовать в любых соревнованиях, проводимых на этой платформе. Бан распространяется на все составляющие Codeforces (включая, но не ограничиваясь, социальной сетью, системой проведения контестов, разделом тренировок).

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

Я надеюсь, что Константин Дроздов найдет в себе силы и мужество прожить без Codeforces. Нам не по пути.

Проекту Codeforces было нелегко принять такое решение. Мы надеялись на то, что нарушения прекратятся. Раунд 100 и последующие показали, что мы были не правы, а нарушений становится слишком много. Нам жаль, прощай, anonymous.

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

MikeMirzayanov

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

  • С решением согласен на 100%. Andrew Lazarev.
  • С решением согласен. Dmitry Matov.
  • Правила были нарушены многократно, поэтому с дисквалификацией согласен. Edvard Davtyan
  • С решением согласен. Maxim Shipko.
  • Согласен. Stingray
  • Согласен. Artem Rakhov
  • Согласна. Мария Белова
  • С решением согласен. Dmitry Levshunov.

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

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

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

Как говорится "Мы строили, строили и, наконец, построили". Или во всяком случае близки к этому.

19-го января 2012 года в 12:00 мы открываем подпроект "Тренировки" (по-английски мы назвали его "Gym", т.е. спортзал). Если коротко, то его цель предоставить сервис для того, чтобы на Codeforces вы могли не только участвовать в соревнованиях и обсуждать их, но и удобно тренироваться и тренировать.

В самом деле, при всем разнообразии online judges в мире, толкового сервиса для проведения тренировок не существует. Что хочется от такого сервиса:

  1. Наличие базы виртуальных контестов, составленных преимущественно из прошедших официальных соревнований.
  2. Возможность интегрировать результаты прошедших соревнований в виртуальные контесты, чтобы была возможность тренироваться "против" официальных участников.
  3. Возможность в любое время дня и ночи поучаствовать в тренировке, не боясь, что что-то сломается и сервер ляжет. Короче, надежность.
  4. Возможность как писать виртуальные контесты, так и дорешивать задачи.
  5. Возможность участвовать как индивидуально, так и в составе команды.
  6. Возможность менять состав при сохранении команды.
  7. Возможность просмотра разнообразных статистик и истории участий, возможность составления и публикации отчетов по выбранным участникам/контестам.
  8. Возможность тренеру самостоятельно добавить виртуальный контест, если такого еще нет. Процесс должен быть простым, надежным и максимально автоматизированным. Возможность запарсить таблицу результатов прошедших соревнований и добавить попытки официальных участников в виртуальный контест.
  9. Возможность смотреть решения других участников/тесты, если сам решил эту задачу.
  10. Возможность найти тренировку по вкусу, т.е. подбор по параметрам.

Проект Codeforces::Тренировки ставит перед собой цель выполнить все эти требования. Уже сейчас почти все из перечисленного доступно, а что таковым не является, то будет.

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

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

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

Всем привет.

Возможно, это будет не самое популярное изменение, но все-таки: у нас меняются правила подсчета голосов и голосования вообще. Почему? На то есть причины. Самое главное — мы решили отказаться от концепции +2/-1, как поощряющей авторов. Такой баланс отлично работал на начальном этапе развития Codeforces, сейчас же это приводит к тому, что слишком многие несодержательные посты набирают значительный плюс, да и оценка становится нерепрезентативной. Итак, теперь вес положительного голоса равен весу отрицательного, а знак суммарной оценки в самом деле характеризует отношение участников сообщество к посту или комментарию.

Кроме того, так как Codeforces — это профессиональное сообщество интересующихся спортивным программированием, то решено учитывать профессиональные достижения участников. Таким образом, вес голоса участника монотонным образом зависит от авторитета, которая определяется рейтингом. Сразу отмечу, что вклад не учитывается при подсчете авторитета. Разницы весов не являются колоссальными, несмотря на то, что красных в 15+ раз меньше синих, веса отличаются меньше.

Внедрены дополнительные fraud detection эвристики (некоторые уже были), которые свели на нет разнообразные случаи мошенничества, кровную месть, усложнили reverse engineering системы и подобную ерунду. Точные детали правил подсчета голосов не распространяются, но все основные принципы изложены выше.

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

UPD. После исправления некоторых замеченных багов пересчет был запущен по-новой. Неправильно работала одна из эвристик (в частности, поэтому у dolphinigle были проблемы, его заминусовали) и были проблемы с отображением новых +/- (спасибо комментаторам).

MikeMirzayanov

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

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

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

После прочтения замечательного стихотворения [user:Amarilllis]  "Позвольте мне стать машиной" меня не покидало ощущение, что моему ноутбуку оно не понравилось. Тонкая душа моего старенького Samsung Q310 воспротивилась образу безэмоциональной машины. Так появилось на свет стихотворение-ответ. Написано от лица ноутбука, который обращается к своему владельцу.


Слушай, давай поменяемся,
Думаешь, мне сладко?
Мы ведь тоже с годами старимся,
Но просто так, без подарков.

Мне читать бы стихи и романы,
А не байты за кластером кластер,
Мне — Рембранта бы на экране,
Но далек ты от этой страсти.

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

Я не знаю, что значит "слякоть",
Не расслаблюсь в горячей ванне.
Я готов ежедневно плакать,
Когда вижу твой код на экране.

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

Ровно в полночь у Нового Года
Я просил, хорошо не заплакал,
"Подари мне мгновенье свободы",
Хоть прыжок со стола на пол.

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

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

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

3-го января в 19:00 (московское время) состоится очередной Codeforces Testing Round #4. Конечно, результаты на этом раунде не повлияют на ваш рейтинг, а его проведение — это тест системы перед ответственным Codeforces Round #100. Раунд продлится всего час и будет содержать две задачи. Я не обещаю что-то интересное и захватывающее, но как небольшая разминка будет самое то :) Для нас же важно ваше участие, чтобы быть спокойными относительно недавних изменений.

Буду рад видеть вас на тестировании,
MikeMirzayanov

Тестирование благополучно завершено. Неполадок не выявлено. Всем большое спасибо за участие! Надеюсь вам понравился этот спринт.

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

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

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

Всем привет.

Как известно, у любой медали две стороны. Например, возможностью сменить хэндл большинство воспользовалось по назначению. Конечно, неуютно носить имя, которое было неаккуратно выбрано во время регистрации. Многие унифицировали свой хэндл между Codeforces и TopCoder. С другой стороны, отдельные "шутники" воспользовались моментом, для создания хаоса в комментариях и превращения Codeforces в место публикации того, что они считают шутками. В ходе этого процесса были многократно нарушены правила Codeforces.

Администрация не считает Codeforces подходящим местом для подобных самовыражений. Это противоречит идеи проекта, его правилам, нормам поведения в общественных местах и вызывает внутренний протест как у меня лично, так и у многих членов сообщества.

Изменения хэндлов в стиле I_love_xxx и мимикрические переименовывания были откатаны. Возможность смены хэндла временно отключена. Сегодня она возобновит работу, однако будет внедрено ограничение: хэндл можно будет сменить лишь единожды. Обсуждения в стиле людей с IQ менее 80 скрыты. Те, кто менял фотографию в профиле на чужую откатите изменения назад. Правила были дополнены пунктом "Не используйте чужое фото в профиле, это некрасиво и вводит в заблуждение членов сообщества". Контент, не соответствующий ожидаемому уровню общения будет удаляться и впредь.

Codeforces — проект, собравший вокруг себя более 10 тысяч человек, кому интересно программирование и соревнования по программированию. Это результат большого труда целой группы людей: команда Codeforces, ВКонтакте, авторы, тестеры, добровольные помощники — это не полный список тех, кто привнес существенную пользу в проект. Стоит ли путать божий дар с яичницей и засорять страницы мусором?

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

Такая вот бессонная ночь с 1-го на 2-е января,
MikeMirzayanov

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

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

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

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

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

С Новым Годом, с Новым Кодом!
MikeMirzayanov

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

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

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

Всем привет!

На календаре конец декабря — заканчивается 2011 год. Для нас это было очень насыщенное и захватывающее время. Ниже вы найдете итоги года в картинках в сравнении с 2010-ым годом. Если говорить коротко — у нас рост по всем фронтам! Такой результат — общая победа дружного коллектива. Особое спасибо хочется сказать компании ВКонтакте и лично Павлу Дурову, которым небезразлична судьба сообщества программистов. Спасибо авторам задач — это очень непросто подготовить соревнование. Вы оказываете существенную помощь как проекту Codeforces, так и всему сообществу в целом.

Итак, сравнение уходящего 2011 года и 2010 в картинках:

Рост числа пользователей за все время существования Codeforces (по месяцам)

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

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

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

Всем добрый день.

Новый год — время чудес и подарков! Совершенно случайно 100-й раунд Codeforces совпал с этим замечательным моментом.

Итак, 4-го января в 19:00 (Московское время) состоится юбилейный раунд Codeforces Round 100. Да, мы прощаемся со словом Beta в названии раундов :)

Это будет совмещенный раунд, то есть участники Div1, Div2 и новички будут соревноваться на одном комплекте задач. Чтобы всем было интересно, и каждый нашел задачи по силам, мы планируем расширить раунд до 6-ти задач.

Самое главное: лучшие сто участников по результатам 100-го раунда получат по юбилейной эксклюзивной футболке Codeforces!

Счастливого нового года!
Команда Codeforces

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

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

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

Всем привет!

Теперь вы можете писать свои решения на OСaml и Scala. Для первого из них используется компилятор версии 3.11.0, скаченный по ссылке http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0-win-msvc.exe. Для Scala используется последний релиз http://www.scala-lang.org/downloads/distrib/files/scala-2.9.1.final.zip.

Вот примеры решения задачи 1A - Театральная площадь на обоих языках:

OCaml

let main () =
  let gr () = Scanf.scanf " %f" (fun i -> i) in 
  let n = gr () in
  let m = gr () in
  let a = gr () in
  let f x y = ceil (x /. y) in
  Printf.printf "%.0f\n" ((f n a) *. (f m a))
  ;;
let _ = main();;


Scala

object Main extends App {
 val Array(n, m, a) = readLine.split(" ").map(_.toLong)
 def roundUp(x: Long) = x / a + (if (x % a > 0) 1 else 0)
 println(roundUp(n) * roundUp(m))
}

Как на OCaml, так и на Scala я пишу впервые — более элегантные решения прошу в комментарии :)

MikeMirzayanov

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

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

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

Всем привет!

2-го декабря (в пятницу) в 19:00 (московское время) будет проведен неофициальный нерейтинговый контест Codeforces Testing Round #3. Во время него мы проверим на практике, что последние нововведения Codeforces не влияют на ход соревнований, а если это не так, то быстренько все исправим :) Так что этот раунд будет проходить as is, никаких гарантий на ход его проведения я не даю.

Задачи на раунде кому-то могут оказаться известными, но я постараюсь сделать так, чтобы это было верно не для всех. Будет 3-4 довольно простых задач. Продолжительность соревнования — 1 час.

Говорю заранее спасибо всем тем, кто придет и протестирует систему. Спасибо!

Все изменения в системе будут сугубо внутренние, видимых нововведений почти не будет.

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

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

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

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

  1. SPb NRU ITMO 1 (Kapun, Kever, Nigmatullin) — 1-ое место, чемпионы региона
  2. Moscow SU 1 (Fedorov, Kaluzhin, Rogulenko) — 2-ое место
  3. Belarusian SU 1 (Bahdanau, Pisarchyk, Sobol) — 3-е место
  4. Saratov SU 2 (Ivanov, Kuznetsov, Rakhov)
  5. SPb SU 1 (Andreev, Boykiy, Fondaratov)
  6. Moscow IPT 1 (Dlugach, Gimadeev, Shishkin)
  7. Ural FU 1 (Dolgorukov, Schelkonogov, Soboleva)
  8. Altai STU 1 (Silin, Uvarov, Yesipenko)
  9. Ufa SATU (Lezhankin, Mazgarov, Ripatti)
  10. Nizhny Novgorod SU (Lyulkov, Shmelev, Vadimov)
  11. Belarus SUIR 2 (Berezhnov, Brukau, Ropan)
  12. Udmurt SU (Abizyaev, Kibardin, Urbanovich)
  13. Latvian U 2 (Kalinicenko, Vihrovs, Vilcins)
  14. Kazakh-British TU 3 (Aitbayev, Satylkhanov, Almakhan)
  15. Tomsk SU 1 (Chadnov, Kolupaev, Afanasev)
  16. Volgograd STU (Agafonov, Chalyshev, Zhorin)

Проект Codeforces желает всем будущим участникам финала успехов в подготовке к ответственному соревнованию и достойных результатов в финале!

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

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

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

Всем привет!

В пятницу, 25-го ноября в 19:00 вас ожидает раунд, который был подготовлен мной. Подготовить раунд занятие хлопотное, но полезное и интересное. Своим примером я хочу намекнуть нашим топовым участникам, что раунды от известных людей — это всегда интересно!

Кроме меня раунд для вас делали RAD, Nickolas и Delinur. Им большое спасибо. Более того, Edvard еще не в курсе, но совсем скоро я попрошу его прорешать этот раунд в качестве тестера :)

Необычность раунда еще состоит в том, что вас ждет 6 задач. Это небольшой эксперимент — надеюсь, что это поможет каждому участнику найти интересные для себя задачи.

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

Расценки в баллах на задачи будут такими: A - 500, B - 1000, C - 1500, D - 2000, E - 2500 и F - 2500.

MikeMirzayanov

UPD. Соревнования закончилось. Вот результаты. Первое место занял представитель Китая — liuq901. Приятно было наблюдать столь большой интерес к контесту. Спасибо за участие!

К сожалению, у меня нет возможности написать разбор. Если с этим справиться кто-то из членов сообщества, буду благодарен.

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

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

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

Всем привет.

Хочу поделиться большой радостью моей семьи. В ночь с 8-го на 9-е ноября на свет появился маленький человечек по имени Танечка Мирзаянова. Конечно, теперь очевидны причины переноса раунда :)

Пока Танечке менее суток от рождения, но она уже успела подарить незабываемые радостные впечатления ее родителям — мне и моей супруге Кате aka LLLike. А сколько еще впереди!

Через несколько лет Таня Мирзаянова прочтет этот пост, а я ей скажу: "Смотри Танечка, сколько хороших и умных людей из разных уголков Земли поздравили тебя!".

Счастливый и довольный,
MikeMirzayanov

UPD: Всем огромное спасибо за поздравления! Я даже не ожидал прочесть столько теплых и приятных комментариев. А количество плюсов доказывает вечную истину: "дети - цветы жизни!". Спасибо!

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

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

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

Всем привет!

Сегодня — 7 ноября. А это, как известно, красный день календаря. Много лет назад в этот день свершилась Великая Октябрьская социалистическая революция. Я еще помню красные флаги, военную технику на проспекте, ощущение общей радости и праздника. Но сегодня, в 2011 году, у нас другая революция — революция Codeforces цветов и званий. Ура!

Итак, за последние месяцы наши ряды заметно пополнились. Если считать пользователей, кто участвовал в ретинговом контесте за последние 9 месяцев хотя бы раз, то на начало года таких было 4330, а сейчас 7615. Есть прогресс! Конечно, это приводит к ощутимой инфляции рейтинга. Большинство Эло-подобных рейтингов этому подвержены. Например, в 1979 году только Карпов А.Е. имел шахматный рейтинг Эло больше 2700, эта цифра возросла до 15 в 1994, а в 2009 таких шахматистов стало 33. На TopCoder в 2001 году красных было менее 10, около сотни в 2005 и сейчас — более 250.

Подобный эффект произошел и на Codeforces. На фоне активного роста аудитории он оказался особенно заметным. По этой причине было решено изменить сетку цветов. Кроме того, история показала, что воинские звания по нраву далеко не всем, да и довольно далеки от нашей интеллектуально-спортивной тематики. Сегодня мы расформировываем Codeforces как воинское подразделение и заменяем воинские звания спортивными. Задействованы спортивные звания в интеллектуальных играх и собраны в следующую классификацию:

Границы рейтина Цвет Звание Дивизион
2600+ Красный Международный гроссмейстер 1
2200 - 2599 Красный Гроссмейстер 1
2050 - 2199 Оранжевый Международный мастер 1
1900 - 2049 Оранжевый Мастер 1
1700 - 1899 Фиолетовый Кандидат в мастера 1
1500 - 1699 Синий Эксперт 2
1350 - 1499 Зеленый Специалист 2
1200 - 1349 Зеленый Ученик 2
0 - 1199 Серый Новичок 2

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

Я понимаю, что некоторым из вас будет тяжело расставаться с полюбившимся цветом, но давайте с оптимизмом смотреть вперед — новые победы вернут утраченный цвет и помогут завоевать гордое звание "гроссмейстер"!

MikeMirzayanov

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

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

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

Сделаны следующие улучшения:

  1. исправлен баг с расползанием скругленной таблички (например, в личных сообщениях);
  2. исправлен баг с заказом виртуального контеста, который возник после неперевода часов;
  3. разосланные сообщения теперь появляются в списке вопросов-ответов под списком задач в интерфейсе контеста;
  4. добавлены флаги в таблице результатов и рейтинге (если у вас нет флага, то либо не указана страна в профиле, либо у нее неправильный двухбуквенный ISO-код);
  5. нотификация о новых сообщениях теперь более заметна;
  6. список всех попыток пользователя в его профиле;
  7. небольшие улучшения в обработке нового комментария - надеемся избавиться от дубликатов и пустых сообщений;
  8. страницы на таблице результатов друзей;
  9. страницы в статусе в интерфейсе контеста;
  10. страницы в списке прошедших контестов;
  11. страницы в статусе архива задач;
  12. переход на следующую/предыдущую страницу по Ctrl+стрелочкам;
  13. постраничная навигация и возможность сортировки по рейтингу зарегистрированных на контест;
  14. кнопки для публикации в соц. сетях для постов.
Если вы видите что-то простое, но полезное, что можно поправить - отпишитесь в комментариях. Рассматриваются только полезные предложения, которые в самом деле реализуются за 10-20 минут.

Отдыхаю в праздник,

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

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

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

Всем привет!

Завтра, в 29.10.2011 17:00 (Московское время) будет проведен неофициальный контест Codeforces Testing Round #2. Во время него мы проверим на практике, что последние нововведения Codeforces не влияют на ход соревнований, а если это не так, то быстренько все исправим :) Так что этот раунд будет проходить as is, никаких гарантий на ход его проведения я не даю.

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

Говорю заранее спасибо всем тем, кто придет и протестирует систему. Спасибо!

UPD: Контест перенесен на 29.10.2011 17:00 (сначала был анонсирован на другое время, будьте внимательны).

UPD 2: В контесте, наверняка, будут известные задачи для участников из Саратова. Просьба не участвовать тем, кто живет или вырос в Саратове - не портите fun другим участникам.

UPD 3: Раунд будет нерейтинговым.

UPD 4: Всем спасибо за помощь. Я думаю, получилось довольно весело для вас и полезно для нас!

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

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

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

Всем привет!

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

Мафия. Здесь почти без комментариев, хотя играют в нее мои ребята редко. По дороге на полуфинал в поезде неоднократно играли всей Саратовской делегацией, включая нашего бессменного руководителя и декана факультета Федорову Антонину Гавриловну. Обычно ее довольно быстро выключали из игры темные силы. Тяжело быть деканом.

Контакт. В нее я играл, когда был еще школьником. Теперь же это редкий зверь. Забавно, что почти по Пелевину (музыка та же, слова те же, но песня-то другая!), я столкнулся с другим вариантом этой игры на культовых сборах в Пено (CBOSS-МГУ 2004). В варианте игры, с которым меня познакомили там, загадывающий загадывал очень умное слово (типа «Анапест») и эндшпиль игры состоял в том, чтобы просто понять, что за слово. Попытки делались аналогично, то есть использовались прочие умности: «На Хе из 9 букв семимерный куб». Игра для меня приобрела новый оттенок.

Преферанс. К этой забаве я как-то не пристрастился, но мои однокомандники любили расписать пулю. Играли на интерес? Отнюдь.

Puzzle Bubble. В эту игру несколько лет подряд все рубились на Петрозаводских сборах. По-моему Гасса с Андреем Лопатиным были самыми чемпионами, хотя могу ошибаться. Развивает глазомер, внимательность и счет.

AD&D. Было дело, мы ходили в модули прям во время поездок. Все по правилам — с дайсами, спеллятником и прочими атрибутами. Да, я был DM-ом.

Шахматы. Это был удел команды Саратов СУ 3, а именно Виталика Гольдштейна и Сережи Назарова. Иногда они в поездки брали часы, иногда даже не брали доску. В таком случае они играли в слепую: один лежал на верхней полке, другой под ним на нижней и они обменивались фразами типа «e7-e5». Другие пассажиры смотрели на них с уважением и немного с опаской.

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

Сейчас уже играют в другие игры, я даже не знаю правила многих из них. А во что играете вы?

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

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

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

Всем привет!

Сегодня, 23-го октября (в воскресенье) в 12:00 (по Москве) начнется онлайн трансляция недавно завершившегося четвертьфинала Южного подрегиона NEERC. Два дня назад это соревнование состоялось в Саратове на базе Саратовского ГУ, а сегодня вы можете принять участие в нем неофициально. Участники официального соревнования будут присутствовать в текущих результатах. Условия задач будут доступны как одним PDF-файлом, так и в HTML по одной задаче. Для участия перейдите на сайт http://acm.sgu.ru.

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

Председатель жюри четвертьфинала,
MikeMirzayanov

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

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

Автор MikeMirzayanov, 13 лет назад, По-русски
Вот такое развлекательное мероприятие для участников проходит у нас на четвертьфинале.

Посмотреть скринкаст на youtube

Участникам предлагается написать искуственный интеллект для волшебника.

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

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

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

Всем привет!

Еще несколько дней и наша напряженная работа по подготовке перейдет в напряженную, но интересную работу по проведению региональной командной олимпиады школьников и четвертьфинала ACM-ICPC. С 17-го по 22-е октября Саратовский государственный университет проведет эти мероприятия.

Командная олимпиада школьников имеет юбилейный номер 10, но история командных школьных олимпиад в Саратове еще старше. Страшно сказать, но в 97-м году (14 лет назад!) я принимал участие в подобном соревновании. Эта олимпиада будет 10-я в рамках ВКОШП (Всероссийской командной олимпиады школьников по программированию). В соответствии с http://neerc.ifmo.ru/school/russia-team/regional.html квота на следующий этап составляет 6 команд. Напомню, что действующим чемпионом региона среди школьников является команда Физико-технического лицея №1 города Саратова. Кто станет победителем в этом году?

Четвертьфинал этого года имеет заслуженный номер "четырнадцатый". Надеюсь, вам понравятся задачи. Мне, как председателю жюри, хочется верить, что так и будет. Большой и авторитетный авторский коллектив еще летом начал свою работу — так что у нас хватило времени, сил и возможности придумать и подготовить красивые и интересные задачи. По информации с сайта полуфинала http://neerc.ifmo.ru/information/selection-rules.html наш четвертьфинал имеет квоту в 17 (семнадцать!) команд на полуфинал, опережая все остальные четвертьфиналы! В этом смысле наш ближайших соперник — восточный четвертьфинал имеет 12 мест и отстал от нас на 5 мест :) Хорошее начало соревновательного сезона для нашего четвертьфинала!

Кроме четвертьфинала, традиционно, вниманию участников будет предложено неофициальное игровое соревнование Code Game Challenge. В этом году вас ждут новые правила, новые персонажи и новые возможности. Какие именно — секрет! Напомню, что в процессе этого соревнования участникам предстоит писать искусственный интеллект для игровых ботов, которые позже во время шоу сойдутся в решительной схватке. Шоу мы проводим в актовом зале, используем проектор — так что есть все возможности поболеть за своего бота и насладится боями с участием других команд.

Технический комитет в этом году внедрил несколько нововведений, которые придутся по душе командам. Во время проведения четветьфинала каждая команда сама выбирает, под какой операционной системой ей работать. Доступны Windows XP и Fedora 15, на компьютерах установлены обе системы. Более того во время отсылки решения можно выбирать, под какой ОС будет тестироваться ваше решение. Именно так, мы уверены, должна выглядеть user-friendy поддержка Windows и Linux.

Отмечу, что официальное зеркало четвертьфинала будет традиционно проведено на сайте http://acm.sgu.ru/. В таблицу результатам участникам зеркала будут заинтегрированы текущие результаты официальных участников. Приходите, будет интересно!

Всем участникам я желаю хорошего настроения, как до соревнования, так и после!
MikeMirzayanov

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

  • есть сливы,
  • пить сливки,
  • употреблять сливочное масло.
Основной тур стартовал: болеть здесь!

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

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