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

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

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

Давайте вместе обсудим этот момент. Что нужно исправить/улучшить/изменить, чтобы на Codeforces появились разборы?
  • Проголосовать: нравится
  • +6
  • Проголосовать: не нравится

15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Труд надо оплачивать, тем или иным образом. Понятно, что с живыми деньгами тут по всей видмости туго, так надо ввести свою валюту и продавать за нее какие-нибудь преференции... Ну там приоритет при проверке, тесты к задачам, небольшие подсказки к задачам прямо во время турнира (вот этого вообще нигде нет).
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Думаю, подсказки к задачам вводить нельзя, так как много людей будут недовольны. У некоторых нету достаточного опыта или уровня знаний чтобы писать разборы, у других просто не хватает времени.
    Но идея с введением валюты мне нравится. Например, можно разрешить менять ник или его цвет за определенную стоимость. Так же можно добавить какой-нибудь расширенный поиск или расширенную статистику с графиками и возможностью экспорта, опять таки за определенное количество денег (виртуальных, разумеется). Думаю, можно придумать много чего в этом направлении.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Можно менять бонусные баллы на дополнительные минуты к контесту =)

      Но только важно не перегнуть палку, чтобы не превратить CodeForces в Одноклассники.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Получится счастливый фермер :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    По-моему подсказки к задачам это глупо =) Лучше наверное как-то рейтинг использовать. Например
    1. Просто +50 к рейтингу
    2. Изменение рейтинга в следующем контесте умножить на 1,5
    3. Если в следующем контесте рейтинг должен упасть, то он остается неизменным.
    В общем как-то так =)
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Невижу в подсказках ничего глупого. Контесты должны выявлять тех, кто лучше решает задачи. Порой кому-то для решения нехватает совсем маленького толчка в виде подсказки (типа: используйте заметающую прямую), а кому-то совсем много не хватает. Эти люди сейчас будут оценены одинаково по этой задаче, а с подсказкой получится их рахделить.

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

      Вот рейтинг прибавлять действительно сомнительная идея... Тогда можно будет вообще не соревноваться, а только разборы писать - это безсмысленно.
      • 15 лет назад, # ^ |
          Проголосовать: нравится +2 Проголосовать: не нравится
        В том то и дело, что они должны выявлять тех кто лучше решает задачи, а не кто лучше зарабатывает бонусы.

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

        А касательно рейтинга:
        сделал разбор => сам все понял => чуть-чуть покачался => заслужил не большой бонус 
        Не обязательно напрямую рейтинг поднимать, как я сказал можно домножать на коэффициент прирост рейтинг или что-нибудь в таком роде.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          >В том то и дело, что они должны выявлять тех кто лучше решает >задачи, а не кто лучше зарабатывает бонусы.

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

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

          В этом предложении логическая ошибка. Вы противопоставляете "думать самому" и "использовать чужие идеи,подсказки" как будто это взаимоисключающие вещи.
          Вы на лекции ходите, учебники читаете? Зачем вы это делаете? Там же кругом чужие идеи...
          • 15 лет назад, # ^ |
              Проголосовать: нравится +3 Проголосовать: не нравится
            Сидя на лекции вы разве не думаете? В этом и заключается разница. Одно дело просидеть два часа над задачей, не решить ее, а потом прочитать решение. 
            И совершенно другое посидеть над ней 2 минуты и сразу прочитать идею решения.

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

            • 15 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Соглашусь с Доктором Зло, подсказка - плохая вещь, очень важно уметь именно видеть идею, а зачастую даже одна фраза (бинарный поиск, скан-лайн, зет-функция) упрощает работу вдвое.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Можно сделать так, что если по итогам контеста рейтинг падает на X, но у тебя есть Y бонусных баллов, то бонусные баллы обнуляются, а рейтинг падает только на X-Y.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +15 Проголосовать: не нравится
      Все эти предложения в итоге убьют саму идею рейтинга. 

      Представьте, что в чемпионате, допустим, Англии по футболу команда с самой красивой формой получает лишние три очка. Стоит такой команде выиграть чемпионат с отрывом в два очка - и звание "Чемпион Англии" девальвирует со страшной силой и из титула "лучше всех играет в футбол" превратится в непонятно что.

      Так и тут. Сейчас, если у товарища А рейтинг выше, чем у товарища Б - это значит, что А лучше решает задачи по программированию. После ваших нововведений это не будет значить ничего - может быть А действительно лучше решает, а может он просто ночами сидит и строчит обзоры.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        > Сейчас, если у товарища А рейтинг выше, чем у товарища Б - это значит, что А лучше решает задачи по программированию.

        Ну все-таки не совсем так. Правильнее сказать, это означает что А лучше чем Б выступает в соревнованиях по формуле CF. Формула может быть разная, до тех пор пока не выходит за рамки разумного. Маленькие подсказки не выводят в лидеров непонятно кого. Нужно все равно обладать знаниями и умениями, чтобы подсказками воспользоваться, т.е. это своего рода tie-breaker. Это никак не три очка за красивые футболки. Я вообще удивлен, что вынужден пояснять это уже не в первый раз.

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

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

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

        P.S.:
        К вопросу о формуле. Когда я только пришел на CF я кажется где-то читал про какую-то новую формулу контестов. Так вот мне не понятно, те контесты что сейчас проводятся, это и есть новая формула, или это пока идут беты и формула будет другая?
        • 15 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится
          Я не хочу спорить о том, как точнее сказать и кто кому должен покупать инвентарь. 

          Но, во-первых, я уверен, что после таких изменений рейтинг потеряет 90% престижа и смысла, а, во-вторых, читатели тоже вроде согласны.
        • 15 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится
          Формат будет другой. Работа над ним ведется. К сожалению, нехватка свободного времени команды не позволяет поимплементить его так быстро как хочется. Не забывайте, что проведение бета раундов + инкрементальные улучшения и багфиксы отнимают много сил. Так что вам немного терпения, а нам немного поработать :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Так ведь валюта уже имеется - вклад. За разбор задач должно начисляться несколько очков вклада.
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну пока вклад валютой трудно назвать ибо он только возрастает, его нельзя тратить...
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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

1) задачи нужно, как минимум, решить, что, зачастую, является уже проблемой (особенно когда задачи D и E сдают по 12 человек на дивизион)

2) обязательное условие перевода на английский (разумеется, перевод должен быть, как минимум, корректный с точки зрения языка)

15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Эх, тут и поучаствовать то пока времени не находится...
15 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
А может дать возможность разбирать отдельные задачи? Мне кажется проблема в разной сложности задач.
Людям, которые решили D и E, неинтересно писать решения на A,B так, чтобы его поняли те, кто не осилил эти задачи. А по-другмЛюди, которые решили A,B и рады, и хотят поделиться этим, скорее всего не осилили D,E.
Т.е. я предлагаю следующее:
- разбить каким-то образом на 10 частей - 5 задач и 5 переводов.
- у каждой части может быть свой исполнитель и свои комменты
- за каждую часть давать исполнителю +1 вклада
Тогда, мне кажется, мы получим разборы, если не полные, то хотя бы частичные, что все же лучше чем ничего.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Сорри за опечатки, набирал не глядя.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    ну и в конце собирается один пост, в котором лежат ссылки на кусочки. этот пост вешается на главную.

    как то так, наверно))
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
На мой взгляд писать задачи это интересно. А разборы скучновато. Может быть стоит предоставить возможность придумать задачу населению? Тогда 1) будет много задач и будет из чего выбрать для контеста. 2) К каждой задаче автор пишет разбор, что весьма не накладно. 
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    По вклад выще уже писали. он по большому счету ничего не дает.
    Если уж что-то и давать то либо мелкие бонусы на контесте либо напрямую рейтинг.

    Из бонусов на контесте как вариант можно дать k прощенных штрафных попыток или просто -n минут к времени сдачи задачи.

    На мой взгляд это разумнее чем подталкивать на решения задач подсказками..
15 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Можно создать один-единственный разбор, куда любой участник для любой задачи может прислать свой разбор. Далее [админы?] отбирают наилучший для каждой задачи и добавляют в один и тот же пост, который и публикуется. Так можно избежать дублирования разборов, так же как и объединить разборы всех решённых задач.
При этом участник не обязан писать пост у себя в блоге (но это, конечно, и не запрещается); ещё думаю, многие участники не пишут разборы потому, что не решили все задачи контеста. А так просто можно будет послать разбор любой задачи.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Всё хорошее, что я здесь прочитал:

- трата бонусов на приоритет при проверке;

- трата бонусов на  смену ника;

- возможно, трата бонусов на подсказки;

- разбор отдельной задачи, а не контеста, от любого участника;

- выбор админами лучшего разбора;

- бонусы за составление задач.



15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
По интерфейсу — на informatics.mccme.ru разборы лежат на странице с задачей, и там же есть ссылка «добавить разбор». Не лучше ли это, чем разборы в блогах?
15 лет назад, # |
  Проголосовать: нравится +12 Проголосовать: не нравится
1. Во-первых, можно автоматически генерировать шаблон, где были бы ссылки на условие задачи, какая-то статистика по посылкам и ссылки на самое короткое решение и решение от участника с самым высоким рейтингом (ну, я думаю что все поняли на чье, да?)

2. Сделать на сайте вики и выкладывать это туда. Писать разбор всего контеста - долго. Написать 10 строчек идею решения какой-то одной задачи - совсем не сложно.

3. Действительно, раздавать какие-то виртуальные плюшки. Озвученная выше идея с приоритетом тестирования довольно интересная :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Перечитал всю ветку, и вот что думаю: возможность тратить виртуальные баллы на какие-либо реальные бонусы во время контестов интересна, но нужно не перегнуть палку, чтобы не нарушить баланс.

    Какие-либо подсказки к задачам мне кажется давать вполне можно, но только во втором дивизионе. Приоритет тестирования - видимо наиболее мягкая форма. Можно продлять контест (но не более чем на пять минут, скажем). Какие-то страховки от падения рейтинга тоже довольно нейтральный вариант, т.к. не затрагивает других участников напрямую. Можно еще сделать так, что за виртуальные баллы можно смотреть тесты к задачам после контеста (один балл - один тест)
15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
ИМХО рейтинг должен зависеть только от того, как ты написал контест, никаких бонусов, пирожков с вишнёвой начинкой нахаляву и прочей ерундой.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Looking at the chart at http://en.wikipedia.org/wiki/File:Crowdsourcing_process2.jpg, I would agree that step 6 is integral to success. I, however, am not aware of the current policy, and couldn't rapidly locate the blog post about it. Whatever the current payoff is (if anything at all), it looks like it isn't enough. Note that an award needn't be something physical or financial. Extra contribution points, registration tickets for competitions once they start filling to capacity, badges in profiles, additional handle decoration -- any of these could turn out to be the magic formula.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
В общем не удивлен, что комьюнити плохо реагирует на просьбы "кто-нибудь займитесь пожалуйста разбором"..  Обычно это не работает :)

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

Согласен что нужно автоматически генерировать шаблон для разбора очередного соревнования (как Pawa предлагает - по каждой задаче статистика по посылкам, ссылки на короткие решения, и т.д.), выкладывать этот шаблон на вики, и после соревнования давать всем ссылку. Тогда люди будут идти и редактировать вики, зная их труд сразу попадет в общедоступное место. Я бы лично написал несколько строчек про решение той или иной задачи на вики в существующий шаблон, а на просьбу адресованную к общественности вряд ли бы отреагировал. Плюсы вики - возможность совместной работы над разбором, возможность частичного разбора контеста (одной задачи)
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    На топкодере какое-то время была такая система. В самом начале люди писали разборы в вики и было все отлично. Но потом разборов становилось все меньше и в итоге желающие бесплатно написать разбор закончились. Сейчас они снова стали платить за разбор и опять проблемы с нехваткой желающих исчезли. Правда как я понимаю, тут такая система не приемлима, поэтому нужно думать над чем-то другим.
    • 15 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Топкодер одно время вообще загибался - отменили ТССС, сильно урезали TCO, сократили число SRM-ов до двух в месяц. Разумеется, что и энтузиастов меньше стало.

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

      По-моему, написать 5-10 строчек на родном языке про идею решения задачи, которую ты решил - это вообще не проблема. Особенно в свете того, что тебе было не влом потратить 2 часа времени на решение этих задач.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
It seems there isn't an easy way to edit a tutorial, there is only a way to write a whole one.  For example, if I want to write the tutorial, what do I have to do?  For now, it seems first I have to solve all the problems in the contest, then I have to write out solution to each one, explain them and submit it to MikeMirzayanov.  However, that is a lot of effort.  What if I am only interested in writing the solution for one problem?  Sometimes I want to write a tutorial for only one or two problems, but not all 5.  What if I can write something , but not necessarily right away (like in a few weeks)?   There is no Wiki-style template set up where people can edit things right away.  At the same time, if there is we will have a problem with quality control.  This can be solved by some sort of evaluation system, but it doesn't exist at the moment.  I really like CodeForces style contest, but it needs more infrastructure for some things.  For one, may be we can have a more elaborate searchable Forum, then Wiki Pages for problem tutorials (but each user's contribution ought to be separated), and then may be even a way for problem setters to submit problems, if that ever becomes a need.  In general, there should be better ways to locate information.

All of the above is easy to say, but I know for a fact it means work for the administrators to implement things.  At the moment, CodeForces is pretty good and functional, so may be improvements can be made slowly for the future.


15 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
1. Жирный плюс один к тому, чтобы разбивать задачи. Например, можно написать разбор трех задач A,B и C либо одной из D и E.
2. Мне непонятно условие про обязательный перевод разбора. Ведь Julia предлагала свои услуги :) У нее не хватает времени? Тогда эту часть тоже можно выделить отдельно. Например, я бы с радостью перевел хороший разбор:)
3. По поводу идеи со "своей валютой". Действительно, уже есть "вклад", но его правильнее было бы назвать репутацией. То есть, если уж вводить "внутреннюю валюту", то хочется отделить, скажем, смехуечки и бугагашечки в комментах от, к примеру, оплаты за разбор задач. Но мне кажется, что лучше просто давать бонусы на определенный срок.
3а. Бонус на следующем соревновании. Здесь мне кажется приемлемым только вычитать штрафное время. Приоритет в проверке -- еще лучше, но это имеет смысл только до тех пор, пока эта недоработка с длинной очередью не будет пофикшена. Но вообще, я за чистоту контеста :) UPD: рандомная идея -- дать возможность добавлять свои тест-кейсы, которые будут прогоняться первыми; если чье-то решение упало -- минус к моему штрафному времени :)
3б. Бонусы в функционале сайта, например, на неделю. Пока в голову приходит только просмотр определенного количества тест-кейсов, или показ тест-кейсов, на которых падает отправленное решение. Я не знаю, какие планы по развитию сайта, вроде бы в будущем будет возможность делать свои контесты -- тут тоже можно подумать о бонусах. Ну, цвет ника и орден на аватаре -- это само собой :)
4. Коллективные разборы в вики на топкодере не оправдали себя. Качество такого разбора тоже существенно ниже.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А я вот за открытые тесты. Правда как знать как оно повернётся.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Моё мнение всякие системы значков, подсказок это сущая неувязочка.
Разбор должны впервую очередь написать авторы - если они конечно действительно сделать качественный контест, так я полагаю, ну а если последнего не произошло, то ребята должны сами братся за разбор по желанию, даже не за полный, и удобней сделать после окончания контеста, что бы по каждой задаче можно было нажать кнопочку -> разбор (или что-то похожее) и можно было просмотреть все разборы по этой задаче, и что бы любой человек мог оставить комментарий, или вопрос, а то когда много людей пишет отдельно разбор это выглядит как то не очень .. Если это не надо и не авторам и не ребятам, то что тут сказать, значит мы не хотим развиваться, и в следующий раз когда ты уже захочешь увидеть разбор (а сам его не показал другим), то многие попросту тоже ничего и не сделают в следующий раз.
Ну а всё таки было комфортнее, если бы авторы писали первоночальный разбор, а все остальные просто дописывали свои решения, либо отвечали "да я так решал", так как если твоё решение отличается от авторского, иногда даже очень хочется поделится им с другими, особенно если оно лучше или легче ...
15 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Personal thoughts

There are some minor details I guess they could make members hesitate to contribute:
  1. MikeMirzayanov: "The round tutorial is waiting for a volunteer. It is desirable that it will be one of the leaders of today's competition. The tutorial should be in Russian and in English."
  2. Intuitively, a good tutorial = a complete one = you should solve all problems and write all analysis for each of them = take much time
 In long-term vision, I think it's hard and inconsistent to manage discrete blog contents:
  1. If I was looking for all tutorials of Codeforces beta round #9, which tags should I use to search?: [tutorial], [analysis], [solution], [CF 9], [round 9], [round #9],... or some tags in Russian?
  2. If admin added tutorial links to contest page, would he add all links? or which standard he would use to select?
  3. How if I'm interested in all discussions about a particular problem?

Let's clarify our goal for a tutorial

  1. Do we need an overview of the entire match (like Topcoder)?
  2. For each problem, we prefer as many alternate solutions as possible?
  3. Each solution should be tied with a sample source code?
  4. Written both in Russian and English = one person write both English and Russian versions (possibly use translators) or it could be 2 different writers?
  5. How to evaluate the quality of tutorials?
  6. Some awards for contributions?

Personal opinions

Just few opinions aim at above questions:
  1. In fact, Mike often writes a short summary blog after each contest. With a bit more details (like naming the winners), it could become an overview.
  2. After someone gets AC a problem, one more button [Contribute a hint] will appear with some sincere messages like "Congrats! you've passed all tests! We'd love to know your idea for this problem." In short, we're trying to collect all correct hints for each problem. And one can contribute hints for any problems he/she likes.
  3. In the problem page, one more column [Submitted hints] where people can find all hints for a particular problem.
  4. Community will evaluate each hint by voting +/- points. For any yellow / red members or problem-setters, once they click [I like it] <=> +2, instead of +1. The hint with highest plus points will be at the top place. It can reduce the workload of admins, and treat all contributors in a fair way :)
  5. Awards for contributions: IMHO, if one is willing to share his/her ideas, being awarded or not, simply doesn't matter at all. However, in order to encourage people, we can create a simple rank-list for contributors, like if his/her hints can get high positions = add contribution points and set he/she as a candidate for Friendliest coder of the month (a badge in profile?)
As yiuyuho said, it takes time to implement additional features. But once our goal is already clear, improvements can be made step by step.

  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    I think your suggestions are very constructive.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Yes.  The idea of having to submit hints should work quite well.  Here is another system came to my mind.

    1.  For each contest (after actual contest), there is a page linked from the contest page to a tutorial / summary page.

    2. There is a short match summary - I assume Mike or some other admins can write a little bit about it, then other statistical information can be automated.

    3.  For each problem, there are tutorial(s), written by different authors / volunteers.  On the page itself only one is shown: the one with the most +, breaking tie by contest rating of author.  But, there is an option to see other tutorials (for the same problem, by a different author, sorted by +, breaking tie by rating of author).  A reader can then rate the tutorials with +/- (similar to #4 above).

    4. An author can write at most one tutorial (post) for each problem/language combination.  He/She can, however, always edit and improve his current version, and previous version are also available to readers (like TopCoder Forum).  This is to prevent information overflow or having to look through chains of posts for information.

    5. Tutorials for a different language (Russian, Chinese, etc.) can also be posted, in which case readers seeking help in a different language can get it.

    6.  Readers can post comments for each tutorial, suggest improvement, but only the original author can make changes to it.

    OK, let's see some use cases.

    1. Code Forces Round 8 occurs.

    2. I almost got problem D, but not yet, so I spent some more time playing with it.  Finally I solved it a few hours after contest and decided I want to write about I find out.

    3. I write a tutorial about it.  At that time other people might have written tutorials for this problem, in which case I may decide not to spend extra effort.  Otherwise, what I wrote will be the first to appear for everyone else. (I can also choose to write short hints for different problems, and they will appear as tutorials written by me).

    4.  Someone reads my tutorial, are unclear about certain explanation, found some typos.  He post a comment on this tutorial, and I got a notification.  

    5.  I decided to make changes and improve my writeup for the problem.

    6. Another reader reads my tutorial, and decides to write/translate it in his own language (Russian, Chinese, etc.)  Now, there are tutorials in multiple languages.  Since all posts and edits are time-stamped, the original write can always claim authorship (and the other becomes a translation).

    7.  Anyone can write for any problem at any time after contest, things will increase and improve, and everything for one problem is located at one place.

    It doesn't seem to be too much work on the infrastructure - just need a specific page for tutorials for each contest, and each piece of tutorial can be considered as similar to a post, with addition restriction that each author/problem/language combination only exists once, and with a different +/- system. 

    As for reward, the number of +'s received on tutorials and number of first place tutorials can be a statistic on the author's page (may be even with ranking, not sure if too much ranking is a good thing).
    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Having things split up has another fundamental advantage: Newcomers may want to contribute, but find it hard to understand/solve the harder problems.  More seasoned coder may want to contribution, but do not want to waste time on the easier/boring tasks.  So, with the split, newcomers will write about the easier tasks, while more seasoned coders can focus on the more difficult problems.


    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      This system is great but somewhat time-consuming to the admins. But we can get over it by the following unmatured idea.
      The slogan of Codeforces is "The only programming constests Web 2.0 platform". How exciting! Considering people here are all programmers, may I suggest crowdsourcing the implementation work to the users too if need be?  Don't forget what the spirit of Web 2.0 is: contribute, share and enjoy
      I deem the best way is going step by step. After all, Rome was not build in one day, the community would not be either.
      So guys, action! This is our own community, isn't it?
    • 15 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      I like this very much! It combines "small hints" and full-blown tutorials, and it's consistent with CF slogan "Web 2.0 contests". The only problem I see now is the following: someone writes a non-trivial idea for a problem, and it gains rating quickly; after that someone decides to write a full tutorial, but it's lost because few people will read it after they figured out the solution. I think the reward should be determined by the admin; perhaps, there need to be a 'crowd choice' reward for a comment that received the maximum rating and 'admin choice' reward for the best tutorial. The links to both will appear on the problem's page.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
It seems that not enough people are willing to simply share their ideas. As we know, TopCoder tried to implement a similar system, and it wasn't successful although they had a wiki set up, each user could contribute to each individual problem, there was only one language to write it in, etc. The idea about the hints, however, seems like it could work.
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Oh, maybe, if womeone has trouble with English but wants to write a problem's solution, h (she) made it in russian first, then someone else just translate it into English, getting exra reputation (internal currency).
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
After I saw the invitation to write tutorial after round 7, I thought "maybe I can do it". Then, what made me not doing anything with that:
- Tutorial must be also in Russian. I don't speak Russian, so I'm not the best one to do it.
- I must write solutions to all problems. That means I must have done all of them. I don't know how to do (or at least prove) solution to last task, so again I'm not the right person here. That also means a lot of work since 5 completely described tasks is much.
- Finally I supposed that you will have rather too many volunteers than too less. Now I see the assumption was definitely wrong.

Generally I can declare myself to do some stuff and help to develop the site. I'm not the one with a bunch of time but I'd like to do something.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Насчет первого я промолчу, а второе - отменить звания. А то постоянно возникает мысль пойти в военкомат и получить хоть низкое, но настоящее!!
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Не знаю, лично меня звания на codeforces никоим образом не напрягают и не поощряют идти служить армию. К тому же благодаря этому сайту я немного узнал о том, какие существуют звания в нашей армии :)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I think each problemsetter sould write a sample solution in some common language and, of course, the tutorial.
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Идея давать подсказки на контестах за разборы, на мой взгляд, выглядят странной, потому что обычно разборы пишут сильнейшие участники, которые и без подсказок справляются.
15 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
I agree with yiuyuho and freepascal145 that it should be easier to contribute a smaller chunk of work. I don't know why the match summary and individual problem analyses must be written as part of a single tutorial; they make sense on their own. For example, the CodeJam site presents the match analysis in chunks too, and that seems to work well.

Similarly, the requirement to write both Russian and English texts limits the potential contributors to those that are fluent in both languages, even though I imagine there are Russians that find writing in English too hard, but would be willing to translate a text into Russian, or vice versa. At any rate, it seems to me that having a Russian/English analysis only is better than having none at all, but the current rules prevent it.

So the summarize the above: I think you should consider reducing the amount of work to be done by a single person at a time, in order to reduce the threshold of contributing.

As an aside, I've edited a couple of problem analyses at TopCoder, and two things which sometimes put me off there, were the awkwardness of the wiki software (it's difficult and time consuming to properly format formulas and code in your analysis) and the fact that you don't know whether somebody else is writing a problem analysis too (possibly obsoleting your contribution). That last possibility is especially discouraging, because getting your contribution published is the only reward you get for your work.

Finally, I find the best way to solve a task with a group of people in any situation is to break it down into smaller subtasks that can be completed individually, and then assign each subtask to a person so that someone is specifically  responsible for its completion. That may not be directly applicable to the current situation, but the closer you can get, the better.
15 лет назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится
When I've been writing contest editorials for TopCoder, I was doing that because I (secretly) wanted to see my own face on the main page.

So, the main problem with the editorials is that writers should spend a lot of time writing the editorial to get nothing in return. Why would someone write the editorial?

PS
Having a link to the editorials at the main page would help a lot as well.
15 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Возможно стоит после завершения соревнования открывать под задачей комментирование, где желающие могут оставить пару слов о том как они решали эту задачу, чтобы другие во время дорешнивания , в случае трудностей, или для просмотра альтернатив,  могли подсмотреть какую-нибудь идею
  • 15 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, а по результатам обсуждений разбор будет написать гораздо легче. =)
15 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
1. Почему так? - Уже длительное время в нашей стране воспитываются чувства индивидуализма, личного успеха, потребительства и т.п. Работать для других, причем бесплатно, - это полагается глупым и "стрёмным". Так что пользуясь случаем, хочу выразить большой респект Михаилу и всей команде, создавшей данный проект.

2. Что делать? - ИМХО, решение достаточно простое и справедливое. По принципу "любишь кататься, люби и саночки возить". Разборы должны делать победители контестов, т.е. самые опытные участники. Чтобы это все время не был Petr, берётся, скажем top10 победителей контеста и среди них выбирается первый из тех, кто еще не писал разбора. Можно написать программку, которая будет хранить список уже писавших разборы и выбирать нового.

3. Для решения проблемы с переводом на английский, как вариант, можно назначать 2 ответственных на разбор.
  • 15 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    я боюсь, что при таком "насилии" над топовыми участниками мы либо

    а) получим разборы вида "ну тут и так всё понятно, а в этой задаче бинпоиск по ответу", либо

    б) просто спугнём участников угрозой написания разбора; они поучаствуют раз и уйдут из CF, чтобы не делать то, что им не нужно, не хочется и не оплачивается

    • 15 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      1. Вообще-то, это не "насилие", а обычная практика (в спорте, например), когда ведущие/старшие ученики  несут больше ответственности и отвечают за младших, проводят иногда занятия вместо тренера и т.п. 

      2. ИМХО, качество и детальность разбора зависят от уровня ответственности, его делающего. Кроме того, чем непонятнее разбор, тем больше автору зададут вопросов в комментариях. :)

      3. Ну а на счет спугнем - это вряд ли. Разве что случай инфантилизма, что трудно ожидать от участников такого уровня. Ведь на самом-то деле, писать разбор - это "почетная обязанность", которую заслужить еще надо! Я бы с удовольствием писал, если бы скилы позволяли. :)

      4. К тому же и проблем особых нет: не хочешь писать обзоры, просто не попадай в "десятку". :):):)
      • 15 лет назад, # ^ |
          Проголосовать: нравится +3 Проголосовать: не нравится
        Ты где-нибудь видел, чтобы обязаловкой добивались хороших результатов?
        • 15 лет назад, # ^ |
            Проголосовать: нравится +2 Проголосовать: не нравится
          В армии?
          Может хоть какое-то применение званиям найдется :)
  • 15 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Хорошее предложение. Представим себе, что я занял какое-то место в десятке, и мне выпало писать разбор. Я вежливо отказываюсь. Ваши действия?
    • 15 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится
      Обстоятельства могут быть у каждого. В случае, если человек не может, выбирается следующий по списку. Но если, к примеру, человек отказывается 3 раза подряд, это уже закономерность.

      Вообще складывается впечатление, что абсолютное большинство занято совершенно неотложными делами. То есть с кровью вырвать из своего графика 2 часа, чтобы поучаствовать в контесте, еще удается, а вот как помочь сообществу, так сразу извините, времени нет?!. :)

      То есть типа, Миша, все так клево! А ты давай, просмотр кода еще сделай!!! И чтобы по участнику/языку фильтровать можно! Да, и чтобы в обратном порядке тоже сортировала! Да и чтобы сервер не тормозил, когда решения проверяет!! Плюс чтобы комментарии в плоском режиме, а не в виде дерева - это ж совсем ерунда, раз плюнуть!!! ДА! И еще контестов побольше и разных!...
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Очень умнею вещь сказали выше- из обязательного разбора ничего хорошего не получится. Разбор получится хорошим либо если его будет человек который сам хочет его сделать (в общем-то весь сайт держится на энтузиазме отдельных людей, зачто им большое спасибо) либо если от качества разбор что-то будет зависеть. В принципе про поощрения было сказанно уже много и я не вижу смысла говорить еще.
      • 15 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        >То есть с кровью вырвать из своего графика 2 часа, чтобы поучаствовать в контесте, еще удается, а вот как помочь сообществу, так сразу извините, времени нет?!. :)

        Да, примерно так. А почему ты находишь это странным? У людей своя жизнь: свои интересы, проблемы, работа, семья, в конце концов, у некоторых. И обязать всех людей делать что-то для сообщества не получится. Они не подписывались на какую-то помощь кому-либо.
        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Полагаю, что если разборы будут оплачиваться, проблем с ними сразу не будет. Эта мотивация почему-то у большинства работает.

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

          Справедливость чистого рандома тоже вряд ли устроит большинство.
          Предложите свое справедливое решение.


          • 15 лет назад, # ^ |
              Проголосовать: нравится +7 Проголосовать: не нравится
            Извините, конечно, но это бред. Справедливость решения никого не волнует. Решение "каждый участник должен написать по обзору и пожертвовать 100р бездомным детям" - справедливо, но соревнования по такой схеме популярности не приобретут. 

            Нужно не справедливое, а работающее решение.
      • 15 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        Ну окей, я 33 раза подряд занял место в десятке и все 33 раза отказался. Ваши действия?


        • 15 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Окей, я бы сделал так :) 
          За написанный разбор пользователь получает +20 к вкладу (репутации). Если разбор не написан, то -20. Когда репутация становится -100, пользователь переходит в режим "read only" (применительно к данному ресурсу, ему доступны все возможности, кроме участия в контесте). По аналогии с http://habrahabr.ru/ , там подобный подход по-моему работает не плохо. :)
          • 15 лет назад, # ^ |
              Проголосовать: нравится +1 Проголосовать: не нравится
            Хорошо - мы сделали так, как вы сказали, все топ-пользователи ушли.
            Что дальше?
          • 15 лет назад, # ^ |
              Проголосовать: нравится +12 Проголосовать: не нравится
            На Хабре минусы ставят за грубости и прочую лабуду - там никого не заставляют писать тексты. 
          • 15 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            В самом деле. Здесь я согласен с Olexiy. Все должно быть добровольно.