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

Доброго вам предновогоднего дня!

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

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

  • Простой способ добавить соревнование из Polygon в Codeforces::Тренировки. Недавно появился подробный туториал (спасибо, elena!)
  • Черновики, встроенные в текстовые поля форм в проектах Codeforces и Polygon.
  • Множественные улучшения интерфейса участника соревнований.
  • Множественные улучшения библиотеки Testlib.
  • Улучшена производительность Polygon на больших ручных тестах.
  • Неоднократно обновлялись версии компиляторов до свежих.
  • Поддержаны языки: MS C#, Python 3, Go, JavaScript V8.
  • Обновлены тестирующие серверы Codeforces и внедрены в работу.
  • Polygon переведен на использование HTTPS.
  • Проведён первый сезон еженедельных тренировок Codeforces (12 эпизодов).
  • Поддержаны организации в профиле и рейтинг организаций.
  • Добавлены многочисленные контесты в Codeforces::Тренировки. Наверное, самое ценное — большое количество контестов Андрея Станкевича.
  • Внедрены тесты для чекеров и валидаторов в Polygon.
  • Внедрена поддержка макро-языка в скрипты генерации тестов в Polygon.
  • На Codeforces появились группы, с контестами и блогами.
  • Внедрена возможность составления мэшапов — контестов для личных и групповых тренировок.

Кроме того, за 2013-й год мы провели не только 64 классических раунда, но и несколько турниров:

А еще мы успели оказаться пресс-партнером финала ACM-ICPC 2013!

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

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

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

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

Доброго времени суток)

Приглашаем вас на последний раунд в уходящем году Good Bye 2013. Этот раунд будет не совсем обычным, потому что он будет общим для участников из обоих дивизионов.

Задачи для вас готовили авторы Геральд Агапов (Gerald) и Свечников Артур (ikar). А также, в проведении раунда нам помогал Павел Холкин (HolkinPV). Также говорим спасибо Виталию Аксенову (Aksenov239) за помощь. Традиционно хочется сказать слова благодарности Михаилу Мирзаянову (MikeMirzayanov) за системы Codeforces и Polygon, а также Марии Беловой (Delinur), которая перевела условия задач.

UPD: Распределение баллов по задачам похоже на стандартное — 500-1000-1500-2000-2500-3000-3500

UPD2: Спасибо всем кто принял участие, надеемся что всем понравились подготовленные задачи. Разбор.

UPD3: Поздравляем победителей последнего раунда в этом году. Рейтинг будет обновлен в течение нескольких часов.
1. BaconLi
2. Egor
3. liympanda

Желаем всем участникам удачи, высокого рейтинга и удовольствия от решения задач)

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

Анонс Good Bye 2013
  • Проголосовать: нравится
  • +347
  • Проголосовать: не нравится

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

Всем привет!

Авторы сегодняшнего раунда — craus и dalex. Мы не могли просто так пропустить раунд с таким красивым номером, поэтому в 19.30 MSK вам придется решать задачи, которые Павел для вас придумал, а я подготовил.

Благодарим Gerald и Delinur за помощь в подготовке соревнования и MikeMirzayanov за то, что у нас есть Codeforces.

Систему подсчета баллов и их распределение вы узнаете вместе с началом раунда. Все равно эта информация не несет особого смысла, пока контест не начался.

Полных решений и успешных взломов!

UPD. Контест завершился, поздравляем победителей!

Div. 1:
1. Petr
2. tourist
3. Egor

Div. 2:
1. k3e18
2. tongcx1988
3. LeMieux

UPD. 2 Опубликован разбор задач.

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

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

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

Добрый вечер, Codeforces.

UPD: Новая функциональность недоступна до окончания раунда. В будущем она не будет отключаться на время раундов

Сегодня мы представляем вам предновогоднее обновление, главной новой функцией которого являются мэшапы.

 

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

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

Автор boleyn.su, 10 лет назад, перевод, По-русски

Привет, Codeforces Round #221 начнется 24го декабря в 18:00 по москве. Раунд будет проводиться в обоих дивизионах.

Задачи готовили whd, oGhost и boleyn.su. Это наш первый раунд на Codeforces, и мы надеемся, что он будет весьма хорош.

Хочется поблагодарить Gerald и alpc104 за помощь в подготовке раунда, а также MikeMirzayanov за создание платформы, где все мы можем соревноваться и общаться.

Распределение баллов по задачам будет анонсировано перед началом контеста.

UPD1: Распределение баллов 500-1000-1500-2000-2500 для обоих дивизионов.

UPD2: Наши поздравления победителям! Также поздравляем с рождеством всех, кто празднует его сегодня!

Div 1:

1.Touma_Kazusa

2.al13n

3.rng_58

4.hmspmy077

5.uwi

Div 2:

1.bohuss

2.Tyg3R

3.xhsong

4.adamant

5.Kira96

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

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

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

Дошли руки и до поддержки столь модного сейчас JavaScript. Выбрана реализация V8, как наиболее трендовая и развиваемая. С помощью бубна и литра колы я скомпилировал V8 под Windows. Забавно оказалось — я всё думал, что придется городить workaround, чтобы поддержать чтение в JavaScript из консоли. Оказалась, что d8 сам всё умеет. Вот пример для нахождения A+B:

var line = readline().split(' ')
print(parseInt(line[0]) + parseInt(line[1]))

Было замечено, что если не поставить перевод строки в конце ввода, то readline вернет undefined. Еще один аргумент в пользу того, что все строки должны заканчиваться переводом.

В качестве небольшого исследования и чтобы потешить свою уверенность в мнении, что все языки без статической типизации бесконечно медленны, я написал реализацию HeapSort на С++, Java и JavaScript для сортировки 107 значений от 0 до 9999999. Видимо, этот бенчмарк неплохо показывает как быстро будут работать ваши решения, если вы пишите их в стиле старого доброго Pascal (всё на массивчиках, без выделений памяти и без мощных встроенных библиотек). Результаты для меня оказались неожиданными:

Language Compiler Running time, ms
C++ MinGW 4.7.2 32-bit 630
C++ MS VS 2010 32-bit 650
Java Oracle Java 6 32-bit 1060
Java Oracle Java 7 32-bit 1050
JavaScript V8 3.23.0 32-bit 1700
Pascal Delphi 7 32-bit 630
Pascal FreePascal 2.6.2 32-bit 730
Python 2 Python 2.7.4 32-bit 12500
Python 3 Python 3.3.2 32-bit 20000
Ruby Ruby 1.9.3p0 (2011-10-30, i386-mingw32) 32-bit 520000
Ruby Ruby 2.0.0p353 (2013-11-22, i386-mingw32) 32-bit 345000
Scala Scala 2.10.3 (over Oracle Java 7 32-bit) 1550
Go Go 1.2 32-bit 1780
D DMD v2.064.2 32-bit 800
C# Mono 2.10.9 32-bit 850
C# MS CSC .Net 4.5.1 64-bit 850
Perl Perl v5.12.2 for MSWin32-x86-multi-thread 195000

Отставание-то всего ничего! Я конечно понимаю, что такой код можно заанализировать и jit-ом прям в нативный закомпилить, но все же. Впечатляет. Кстати, а Java с её хваленным и нахаченным JIT не на высоте.

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

Вы можете оставлять в комментариях ссылки на pastebin или сабмиты в систему. Конечно, будут удобнее пулл реквесты прямо в проект.

Если будете писать свою реализацию, то постарайтесь написать аккуратно и опрятно. Пожалуйста, максимально придерживайтесь вариантов для C++, Java и JavaScript.

UPD 1: С помощью alexei-zayakin добавил Pascal.

UPD 2: С помощью gchebanov Wizmann и juancate добавил Python 2, Python 3, Ruby, Scala, Go.

UPD 3: Вот скомпилированный для Window V8.

UPD 4: Обновил версии некоторых компиляторов, обновил результаты.

UPD 5: Добавил D. Спасибо, Gassa.

UPD 6: Добавил C#. Спасибо, gmogelashvili.

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

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

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

Всем привет! Скоро состоится Codeforces Round #220 (Div. 2), автором которого являюсь я, Дмитрий Березин. Это мой третий раунд, и Сережа все еще верит, что последний :)

Со времен прошлого раунда многое изменилось, Дима и Инна подумали над своим поведением, извинились перед Сережей, и все теперь живут дружно. Вам предстоит еще больше укрепить семейное счастье!

Большое спасибо Геральду Агапову (Gerald) за помощь в подготовке раунда, Марии Беловой (Delinur) за перевод задач, Михаилу Мирзаянову (MikeMirzayanov) за превосходную систему, и Сереже Нагину (Sereja) за то, что любезно (не выложил тут очередное фото) согласился помочь в тестировании.

Разбалловка будет. 500-1000-1500-2000-2500. Я же сказал, что будет :) Прошу прощения за задержку.

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

Спасибо Вам за потраченное время, постараюсь в будущем исключить подобные ошибки.

Разбор задач

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

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

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

Добрый день, Codeforces.

Сегодня функциональность групп была обновлена и расширена.

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

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

  • Появилась возможность создавать записи прямо в блоге группы. Эта запись не будет видна в прямом эфире и голоса за неё или за комментарии к ней не будут влиять на вклад.

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

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

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

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

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

С уважением, Иван.

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

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

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

Привет.

Codeforces Round #219 начнется 13-го декабря в 18:00 MSK, раунд будет проводиться как для участников из Div. 1, так и для Div. 2 участников. Обратите внимание, что раунд проводится в нестандартное время.

Задачи готовили kagamiz и DEGwer. Мы хотим поблагодарить Gerald за помощь в организации раунда, Delinur за перевод, а MikeMirzayanov за систему.

Распределение баллов по задачам скоро будет анонсировано, вполне вероятно, будет стандартное распределение баллов по задачам.

UPD1: Распределение баллов по задачам, 500-1000-1500-2000-2500 для обоих дивизионов.

UPD2: В задачах B из Div. 2 и C из Div. 1 были проблемы, все решения перетестированы. Извиняюсь, за это.

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

UPD4: Системное тестирование завершилось, поздравления победителям!!!

Division 1:

1.jqdai0815

2.tourist

3.PavelKunyavskiy

4.dasko1

5.al13n

Division 2:

1.Hwhitetooth

2.pcnc_zLq

3.wuyiqi

4.prok

5.aaaaajack

Особенно поздравляем rng_58 и permin, которые решили задачу E в Div. 1.

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

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

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

Доброго времени суток, сообщество Codeforces!

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

Раунд начнется 8 декабря в 13:00 MSK

Задачи были подготовлены сотрудниками и студентами Саратовского государственного университета, включая MikeMirzayanov, Fefer_Ivan, NALP, HolkinPV и меня.

Разбалловка стандартная: 500-1000-1500-2000-2500.

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

  1. asalwaysdontbeahero
  2. VKRNVO5
  3. chnluyi
  4. pkwv
  5. Xe4NIK

UPD: Разбор задач.

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

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