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

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

Теперь в пост можно совсем просто вставлять фотоальбомы из Picasa. Альбом должен быть публичным, доступным для просмотра по ссылке. Вставлять надо вот так [photoalbum:URL], например так [photoalbum:https://picasaweb.google.com/114907919772955385569/2012?authuser=0&feat=directlink].

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

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

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

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

Всем привет!

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

Задачи для вас делали Nerevar, natalia, MikeMirzayanov и Edvard, а Delinur перевела задачи. Спасибо всем за помощь!

Желаю удачи!

UPD: Рейтинг будет обновлен позже.

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

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

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

Всем привет!

Напоминаю, что 3 апреля в 12:00 начнется квалификационный раунд Открытого чемпионата Москвы и МО по программированию (КРОК).

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

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

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

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

Желаем удачи и удовольствия от решения задач!

UPD: Соревнование закончено! Спасибо за участие. В скором времени будут удалены нарушители порядка и результаты станут официальными. Неофициально — проходной балл в Раунд 1 составляет 1950 баллов.

UPD 2: Из таблицы результатов были удалены явные читеры и люди, кому не исполнилось 18 лет на момент регистрации. Если ваши результаты были удалены по ошибке, свяжитесь со мной для прояснения ситуации. Теперь проходной балл составляет 1900 баллов.

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

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

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

Всем привет!

Добро пожаловать на VK Cup 2012 Уайлд-кард раунд 2!

Вас ждет 7-дневное соревнование по решению всего одной задачи. Мы полагаем, что задача не имеет точного эффективного решения. Чем более оптимальные решения будут находить ваши алгоритмы, тем больше баллов вы получите. Конечно, это не все подробности. Полный текст условия и правил оценки вы сможете прочитать сразу после начала соревнования.

В основном конкурсе этого раунда участвуют те, кто официально прошел в VK Cup 2012 Раунд 2, но не прошел в VK Cup 2012 Раунд 3. По результатам VK Cup 2012 Уайлд-кард раунд 2 лучшие 25 участников завоюют право участия в VK Cup 2012 Раунд 3. Все остальные члены сообщества могут принять участие вне-конкурса, just for fun.

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

Удачи! Пусть победит сильнейший!

P.S. Я не могу не оставить это здесь. Во время соревнования категорически запрещается публиковать/обсуждать алгоритмы решения задачи, подходы к решению, делиться какими-либо выводами о задаче. Нельзя делиться результатами (в том числе просто сообщать баллы) запуска своих решений на каких-либо тестах. Запрещено публиковать инструменты для упрощения или автоматизации процесса решения задачи.

И да, огромное спасибо Nickolas за великолепную задачу!

UPD: Контест закончен, тестирование завершено. Поздравляем первые 25 мест — результаты, вы вышли в VK Cup 2012 Раунд 3!

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

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

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

Добрый день.

VK Cup 2012 Round 2 будет проведен в двух редакциях:

  • официальной VK Cup 2012 Раунд 2 — для прошедших в этот раунд участников VK Cup 2012 и участников из первого дивизиона (последние будут участвовать вне конкурса),
  • спец. редакции для второго дивизиона VK Cup 2012 Раунд 2 (неофициальная редакция для Div. 2) — для участников из второго дивизиона, кто не является официальным участником VK Cup 2012 Раунда 2.

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

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

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

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

Всем привет.

Идея динамической стоимости задач не нова. На сколько я помню, что-то такое обсуждалось еще в 2000-ные, однако на этом все и закончилось. С тех пор тема еще несколько раз всплывала — один из последних экспериментов здесь.

Зачем вообще нужны разные стоимости задач? Как верно подметил RAD, они в самом деле необходимы для контестов, где решение может упасть на системном тестировании или около того. Например, Вася решил простую A, а Петя решил простую A и очень сложную B. У Пети A упала, а B он решил попозже (и может не с первой попытке). В таком случае, если задачи были равны по стоимости, то Петя займет место ниже Васи, что как-то несправедливо.

На Codeforces задачи оцениваются в кратное 500 количество баллов: 500, 1000, 1500 и т.д. Обычно мы стараемся подбирать 5-задачные наборы, разнообразные по сложности. В таком случае, каждый квалифицированный на контест найдет себе задачи по силам и такие, над которыми надо подумать. Традиционный комплект задач включает в себя задачи 500-1000-1500-2000-2500.

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

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

Идея такая:

  • если задачу решили от половины участников до всех участников раунда, то она стоит 500 баллов,
  • если задачу решили от четверти до половины участников участников раунда, то она стоит 1000 баллов,
  • если задачу решили от одной восьмой до четверти, то она стоит 1500 баллов,
  • и так далее.

Конечно, речь идет о максимальной стоимости задачи. Падение в минуту вычисляется по традиционной формуле X/250 (учитывается X на момент построения текущего положения участника). Более формально в таблице:

Доля решивших Максимальный балл за задачу
(1/2, 1] 500
(1/4, 1/2] 1000
(1/8, 1/4] 1500
(1/16, 1/8] 2000
(1/32, 1/16] 2500
[0, 1/32] 3000 (макс. балл за задачу)

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

Вот и все! Как видите идея очень проста и не перегружена формулами и подробностями. Чтобы как-то с ней познакомиться сегодня по ссылкам "Результаты участников" для контестов по правилам Codeforces будут открываться результаты, посчитанные по таким правилам. Это временное изменение, вскоре мы вернем все назад.

Сегодняшний Codeforces Round 113 (Div. 2) будет использовать такие экспериментальные правила. Мы гарантируем, что задача A будет в нем именно та, которую мы считаем наиболее простой. Порядок остальных задач — случайный. Удачи!

Динамическая стоимость задач с шагом 250 баллов (поддержка реализована в марте 2015 г.)

Поддержана более плавная реализация динамической стоимости задач с шагом 250 баллов. Также как и раньше, при увеличении количества сдавших задачу в два раза, максимальная стоимость задачи уменьшается на 500 баллов. Теперь также при увеличении количества сдавших в раз, стоимость падает на 250 баллов. Таблица наже примерно иллюстрирует зависимость максимальной стоимости задачи от доли сдавших ее.

Доля решивших Максимальный балл за задачу
(0.707, 1] 250
(0.500, 0.707] 500
(0.353, 0.500] 750
(0.250, 0.353] 1000
(0.176, 0.250] 1250
(0.125, 0.176] 1500
(0.088, 0.125] 1750
(0.062, 0.088] 2000
(0.044, 0.062] 2250
(0.031, 0.044] 2500
(0.022, 0.031] 2750
[0, 0.022] 3000

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

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

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

Компания КРОК приглашает талантливых и прогрессивных специалистов (от 18 лет) принять участие в Открытом чемпионате Москвы и Московской области по программированию.Чемпионат проводится на базе проекта Codeforces. В работе жюри и технического комитета принимает участие Саратовский государственный университет.

Соревнование будет состоять из нескольких дистанционных отборочных этапов (3-4, 6 и 20 апреля) и финального тура, который пройдет 27 апреля в Москве в офисе компании КРОК. На финале чемпионата также состоится игровой раунд. Участники финала не обязательно должны быть жителями Москвы и Московской области, но дорога до места проведения финала организуется и оплачивается ими самостоятельно.

Победители чемпионата получат ценные призы: 100000 рублей за первое место и ноутбуки Apple MacBook Pro за второе и третье места. Участник, занявший первое место в игровом раунде, будет награжден Apple MacBook Air.

Для того чтобы принять участие в чемпионате необходимо пройти регистрацию на странице http://www.crocok.ru/championship/ до 4 апреля 2012 г.

Подробности о проекте можно также узнать на сайте http://crocok.ru в разделе "Чемпионат по программированию". Официальный язык чемпионата — русский. Задачи будут публиковаться на двух языках — русском и английском.

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

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

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

Добавил в тренировки VI Открытая олимпиада школьников по программированию, заочный этап. Специально засек — с момента открытия страницы с тестами и условиями в браузере до финальной публикации контеста прошло 17 минут :)

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

Если кто-то из участников засабмитит свои решения в дорешивание этого контеста, будет отлично — так проверим ограничения времени/памяти и отсутствие разных багов при импорте.

Еще один вопрос к участникам — как вы оцениваете сложность контеста по шкале 5 звезд? Описание можно посмотреть в тренировках (тултипы на звездах существующих тренировок).

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

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

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

Этот документ содержит подробную и формальную версию правил проведения соревнований на Codeforces. Если вы просто хотите ознакомиться с основами, рекомендуем начать с поста Формат соревнований Codeforces.

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

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

Общие сведения о раунде

  1. Для участия в раунде необходимо зарегистрироваться. Регистрация на раунд открывается за 6 часов до его начала и заканчивается за 5 минут до его начала, если в информации по раунду не оговорено другое.

  2. Система проведения соревнований имеет два интерфейса: русский и английский, между которыми участники могут переключаться.

  3. Продолжительность раунда составляет 2 часа, если в информации по раунду не оговорена другая продолжительность.

  4. Участникам для решения предоставляется 5 задач, если в информации по раунду не оговорено иное количество задач.

  5. Условия задач доступны на двух языках: русском и английском.

  6. Условия всех задач становятся доступными для прочтения в момент начала раунда.

  7. Перед началом соревнования все зарегистрированные участники случайным образом делятся на комнаты. В каждую комнату попадают примерно 40 участников.

Вопросы по задачам

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

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

  3. Жюри соревнований может ответить на заданный вопрос в произвольной текстовой форме.

  4. Ответ "без комментариев" означает, что вопрос не соответствует пункту 2, жюри считает, что вопрос не относится к условию задачи или ответ на него содержится в условии задачи или в правилах соревнований.

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

Решение задач

  1. Решением задачи является программа, написанная на одном из следующих языков программирования (разные задачи можно решать на разных языках программирования, список языков может быть расширен):

    • С/С++
    • Delphi/Pascal
    • Java
    • С#
    • Python
    • Ruby
    • PHP
    • OCaml
    • Haskell
    • Perl
    • Scala
    • D
    • Go
  2. Требования к программам:

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

  4. Участник может видеть результаты проверки решений на соответствующей вкладке системы соревнования.

Компиляция решений

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

    • MinGW GNU C++ 4
    • MinGW GNU C 4
    • Microsoft Visual C++ 2010
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2
    • Java 6, 7
    • Ruby 1
    • Python 2
    • PHP 5
    • Haskell GHC 6
    • Objective Caml 3
    • Scala 2
    • Perl 5
    • Go 1
    • MS C# .NET 4
  2. Организаторы соревнований не несут ответственности за проблемы, вызванные несоответствием версии компилятора в тестирующей системе и версии компилятора, который использовался участником при разработке программы. Для того, чтобы частично избежать подобных проблем, предусмотрена возможность запуска кода участника на стороне сервера. Для запуска надо отослать на сервер программу и входные данные. Через некоторое время тестирующая система сообщит результат работы программы и выходные данные.

  3. Компиляция и запуск решений производятся под ОС Windows. Переводы строк задаются парой символов #13#10. После последней строки файла или входного потока (непосредственно перед его концом) находится перевод строки.

  4. Если произошла ошибка компиляции, то участнику сообщается результат проверки <Ошибка компиляции>, а также лог компилятора.

  5. Размер файла с исходным кодом не должен превышать 64 килобайт.

  6. Тестирующая система использует компиляторы командной строки для компиляции решений. Строки компиляции для разных компиляторов приведены в таблице:

компилятор строка компиляции (запуска)
GNU C++ 4 g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -o %name%.exe %1
GNU C 4 gcc.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -fno-asm -lm -s -Wl,--stack=268435456 -O2 -o %name%.exe %1
GNU C++ 4 (C++0x) g++.exe -static -fno-optimize-sibling-calls -fno-strict-aliasing -DONLINE_JUDGE -lm -s -x c++ -Wl,--stack=268435456 -O2 -std=c++0x -D__USE_MINGW_ANSI_STDIO=0 -o %name%.exe %1
MS VS C++ 2010 cl /W4 /F268435456 /EHsc /O2 /DONLINE_JUDGE %1
Free Pascal 2 fpc -n -O2 -Xs -Sgic -viwn -dONLINE_JUDGE -Cs67107839 -Mdelphi -XS %1 -o%name%.exe
Delphi 7 dcc32 -Q -$M1048576,67107839 -DONLINE_JUDGE -cc %1
C# Mono 2 dmcs -define:ONLINE_JUDGE -o+ -out:%name% %1
Java 6,7 javac -cp ".;*" %1, java.exe -Djava.security.manager -Djava.security.policy=java.policy -javaagent:invokeagent.jar -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s
Ruby 1 ruby.exe -c %1
Python 2 python -c "compile(open('%1').read(), '%1', 'exec')"
PHP 5 php.exe -l %1
Haskell GHC 6 ghc --make -O -o %name% %1
OCaml 3 ocamlopt nums.cmxa str.cmxa -pp camlp4o -unsafe -o %name%.exe-ocaml %1
Scala 2 См. Java
Perl perl.exe %s
D dmd -L/STACK:268435456 -version=ONLINE_JUDGE -O %s
Go go build %1

Проверка решений

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

  2. Результат проверки решения на претестах сообщаются участнику сразу же после проверки.

  3. Каждый тест представляет из себя входные данные для программы участника. Ограничения на содержащиеся в тестах входные данные указываются в условии задачи.

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

  5. Тестирование производится путем последовательного запуска программы на каждом из тестов.

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

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

  2. Если результатом проверки решения является "Ошибка компиляции", "Отказ тестирования" или решение не прошло первый претест, то это решение никак не учитывается при подсчете результатов.

  3. Решение по одной и той же задаче можно отправлять несколько раз.

  4. Решение, прошедшее все претесты, называется подтвержденным решением данного участника по данной задаче.

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

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

    • каждую минуту стоимость задачи уменьшается: стоимость задачи падает на X/250 балла в минуту (где X первоначальная стоимость задачи), например, задача первоначальной стоимости 500 баллов дешевеет со скоростью 2 балла в минуту;
    • балл участника за задачу равен текущей стоимости задачи в баллах за вычетом штрафа;
    • штраф определяется как количество решений этого участника по этой задаче, сделанных ранее, умноженное на 50 баллов;
    • балл участника за задачу не может быть меньше, чем 30% от изначальной стоимости задачи.

Взломы

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

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

  3. За успешный взлом участник получает 100 баллов. За неуспешный взлом участник получает штраф в 50 баллов.

  4. В случае успешного взлома для участника, чье решение взломали, происходит следующее:

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

Что можно делать, а что нельзя

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

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

  3. Разрешается пользоваться любыми источниками информации в интернете (но копировать-вставлять чужой код нельзя).

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

  5. Участникам запрещается общаться на темы, связанные с задачами, с кем бы то ни было, в том числе с другими участниками. Разрешается только задавать вопросы жюри через систему (см. раздел "Вопросы").

  6. Организаторы соревнований имеют право отслеживать честность поведения участников различными методиками и при выявлении нарушений — дисквалифицировать участника.

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

  8. Запрещается использовать какие-либо технические способы (включая, но не ограничиваясь, OCR, средства анализа трафика, браузерные плагины и проч.) взаимодействия со взламываемыми решениями других участников. Единственный допустимый способ анализа взламываемого решения — его зрительный анализ. Допускается ручной перенабор взламываемого решения или каких-либо его частей с целью локального запуска.

  9. Любое нарушение этих правил, правил из раздела ЧАВО, правил из анонса соревнования или подтвержденных в процессе регистраций может повлечь штрафные санкции вплоть до дисквалификации и бана. Будьте честными!

Таблица текущих результатов

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

  2. Все промежуточные результаты являются неофициальными.

Финальное тестирование и окончательные результаты

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

  2. На основном наборе тестов тестируются подтвержденные решения, то есть те, которые одновременно:

    • прошли все претесты и являются последними из таковых (от участника по задаче);
    • не были взломаны.
  3. Задача считается решенной участником, если решение участника прошло все тесты из основного набора тестов.

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

  5. Результатом участника считается сумма баллов за все решенные им задачи и баллов за взломы.

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

  7. Тестирование осуществляется на компьютерах Core 2 Duo E6750, 2.66 Ghz, 3Gb памяти.

Интеллектуальная собственность

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

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

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

Просьба сообщить в комментариях, если мы забыли какие-то аспекты. Если после анализа комментария, текст будет обновлен, а соответствующий комментарий станет неактуальным, то такие комментарии мы будем через некоторое время скрывать (чтобы не захламливать ленту комментариев неактуальными вопросами/замечаниями).

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

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

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

В разделе тренировки опубликован контест, подготовленный Саратовским ГУ, для сборов в Зимних Петрозаводске (2011-2012). Этот же контест был этапом кубка главы Карелии и этапом открытого кубка.

Контест рекомендуется участникам уровня финала чемпионата мира или претендующих на подобные успехи.

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

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

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

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

Всем привет!

Напоминаю, что 9 марта в 12:00 начнется второй квалификационный раунд чемпионата VK Cup 2012.

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

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

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

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

Желаем удачи и удовольствия от решения задач!

UPD: Тестирование завершено, проходной балл равен 3500 3450. Поздравляем всех, кто прошел в Раунд 1!

UPD 2: Мы удалили явных читеров и проходной балл уменьшился до 3450!

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

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

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

Теперь в списке поддерживаемых языков есть и Java 7. По-видимому, это временное явление — одновременное присутствие Java 6 и Java 7. Как только мы убедимся в полной и корректной поддержке Java 7, то скажем Java 6 до свидания. Используется Oracle JDK/JRE, текущая версия 1.7.0_3.

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

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

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

Добрый день.

По единогласному решению Codeforces и организаторов Чемпионата VK Cup 2012 со стороны ВКонтакте вопрос о смягчении ограничений пользователю anonymous будет решен при заявлении от него, содержащем раскаяние в фактах нарушения правил и обещание впредь не нарушать правила.

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

UPD. Было получено заявление, по результатам рассмотрения которого пользователь I_love_natalia (кроме того известный как anonymous) был восстановлен в правах члена сообщества Codeforces.

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

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

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

Всем привет!

Напоминаю, что 4 марта в 00:00 начнется первый квалификационный раунд чемпионата VK Cup 2012.

Чтобы пройти в Раунд 1 вам надо принять участие хотя бы в одной квалификации. Из каждой квалификации в Раунд 1 проходят все участники, набравшие не меньше баллов, чем участник на 800-ом месте. Если вы не будете участвовать в первой квалификации или не прошли по ее результатам в Раунд 1, то не беда — вы можете попробовать силы во второй квалификации.

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

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

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

Зарегистрироваться на раунд можно в любое время вплоть до его окончания. Да, у нас был фальстарт с регистрацией на квалификацию. Не была включена функция проверки регистрации участника в Чемпионате. Если кто-то успел 2-го марта пройти регистрацию на раунд, то сделайте это повторно.

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

Желаем удачи и удовольствия от решения задач!

UPD: Раунд завершен. 12907 попыток ожидают системного тестирования!

UPD 2: Тестирование завершено, доступны результаты.

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

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

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

Чемпионат

Чемпионат VK Cup — это открытый чемпионат по программированию, проводимый компанией ВКонтакте, проектом Codeforces и Саратовским государственным университетом. Финал чемпионата пройдет в июле в Санкт-Петербурге. Лучшие 50 участников по результатам третьего отборочного раунда будут приглашены на финал соревнования. Расходы по проезду и проживанию берут на себя организаторы чемпионата.

Участники

Вы молоды и любите решать задачи по программированию? Этот чемпионат для вас! Участником чемпионата может стать любой желающий, кто удовлетворяет следующим требованиям:

  • возраст не менее 14 и не более 23 полных лет на момент регистрации;
  • не является сотрудником компании ВКонтакте и/или членом оргкомитета или жюри чемпионата;
  • не является дисквалифицированным членом сообщества Codeforces.

Таким образом, чемпионат преимущественно ориентирован на школьников старших классов и студентов.

Соревнование индивидуальное, участие в какой-либо коллективной форме не допускается.

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

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

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

Добавлен еще один контест Саратовского ГУ с Петрозаводских сборов. Кстати, если я правильно помню первое место в нем заняла команда Jury в составе Лопатин, Дуров и ... эх, забыл. Может кто-нибудь помнит?

Решайте на здоровье!

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

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

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

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

Опубликован первый саратовский контест на Петрозаводских сборах. Это было в далеком 2002-ом году, тогда сборы проходили на природе, на берегу Урозеро. Именно на тех сборах наша команда познакомилась с Андреем Лопатиным, Олегом Христенко и большим и дружным коллективом из Петрозаводска: Кузнецовым В.А., Петровичем, Романом Сошкиным. Короче, сборы были замечательные, а мы заняли там первое место.

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

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

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

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

Показываю пример :)

В раздел Codeforces::Тренировки был добавлен контест, который Саратовский ГУ привез на зимние Петрозаводские сборы год назад. Этот же контест был этапом кубка главы Карелии и этапом Открытого Кубка.

Обращаю внимание, что тренировка имеет сложность 5 звезд и рекомендуется к прорешиванию командами не ниже уровня финала чемпионата мира.

Авторы задач — дружный коллектив жюри Саратовского четвертьфинала ACM-ICPC:

  • Михаил Мирзаянов
  • Дмитрий Матов
  • Наталья Бондаренко
  • Дмитрий Кленов
  • Дмитрий Степаненко
  • Станислав Пак
  • Роман Алексеенков

Кстати, на добавление контеста ушло примерно 15 минут, процесс оказался простым и прозрачным. Подключайтесь!

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

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

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

Так как почти каждый член сообщества 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://mirror.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, 14 лет назад, По-русски

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, 14 лет назад, По-русски

Не так давно в английскую Википедиа была добавлена статья о Петре Митричеве (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, 14 лет назад, По-русски

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

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

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

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

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

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

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

Раунд 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, 14 лет назад, По-русски

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

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

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

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

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

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

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

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

Всем привет.

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

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

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

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

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

MikeMirzayanov

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

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