Пожалуйста, прочтите новое правило об ограничении использования AI-инструментов. ×

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

Автор KADR, 14 лет назад, По-русски
Я давно собирался написать некоторые свои мысли о системе взломов, которую мы имеем на данный момент, и раунд 60 стал своеобразным толчком к этому.

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

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

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

Раунд                                              Максимальный процент                        Средний процент
Codeforces Beta Round #39                            12.1%                                                    4.8%
Codeforces Beta Round #41                            10.3%                                                    7.0%     
Codeforces Beta Round #47                            15.4%                                                    5.2%
Codeforces Beta Round #48                            30.8%                                                    15.9%      
Codeforces Beta Round #50                            10.8%                                                    5.4%
Codeforces Beta Round #51                            11.6%                                                    2.8%
Codeforces Beta Round #53                            20.8%                                                    10.8%
Codeforces Beta Round #56                            12.2%                                                    2.4%
Codeforces Beta Round #58                            27.3%                                                    6.5% 
Codeforces Beta Round #60                            70.5%                                                    53.0%

Итак, в каждом из последних 10 контестов для обоих дивизионов был хотя бы один участник из первой пятерки, набравший более 10% своих баллов на взломах. В 4 из 10 контестов был хотя бы один участник из топ-5, набравший более 20% своих баллов на взломах. В одном контесте был участник, набравший более 70% своих баллов на взломах, причем в среднем на этом контесте первая пятрка набрала более 50% баллов на взломах.

Хоть ситуации подобные последнему раунду - редкость (хотя, в раунде 58 было бы то же самое, не будь там проблемы с условием задачи А), но все же они встречаются. Далее я постараюсь провести анализ ситуации со взломами на последнем раунде.

Итак, победитель раунда реализовал 39 успешных взломов, причем в его комнате другими участниками была сделана всего одна успешная попытка взлома. Теперь возьмем комнату 3. Во взломах в этой комнате принимали участие 4 человека, из них двое сделали более одного успешного взлома, поэтому далее будем учитывать только их. В сумме они реализовали 28 успешных взломов по задаче А, причем в этой комнате было всего 3 решения по этой задаче, которые не прошли финальное тестирование. Учитывая что в комнате победителя было 5 решений задачи А, которые не прошли финальное тестирование, то можно проигнорировать эти 3 решения из комнаты 3. Получаем, что даже если сильнейший участник попадет в комнату 3 и реализует эти 28 взломов с 1 попытки, он максимум сможет получить 2800 очков на взломах против 3800 реально полученных очков из комнаты 7.

Из-за распределения по комнатам очки за взломы могут варьироваться даже на +-1000 и даже сильнейшие участники попав в неудачную комнату не имеют шансов выиграть контест. Рассматривая эту ситуацию с комнатами 3 и 7 я не учитываю то что взламывать могут несколько человек в одной комнате, что тоже сильно снижает суммарные очки по взломам. Например, в комнате 6 два участника примерно в одно и то же время (на 11 и 13 минутах) начали взламывать задачи А, позже к ним присоединился еще один. Каждый из первых двух начавших взламывать реализовал по 12 взломов. Сильнейший участник попав в эту комнату не имеет шансов реализовать все взломы в этой комнате, даже если он очень быстро сдаст и заблокирует А и сразу начнет взламывать чужие решения. Даже если предположить что у него отберут 12 взломов, реализовав все остальные взломы с 1 раза он сможет набрать 2000 очков на взломах, что на 1800 меньше чем у победителя раунда. Опять же, шансов победить в этом раунде у него нет.

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

1. Разделить участников из 1 и 2 дивизиона в разные комнаты. В среднем первые 5 участников по турнирной таблице последнего раунда набрали +300 очков на взломах фиолетовых, оранжевых и красных, остальные очки были набраны на серых, зеленых и синих. Разделив дивизионы, красные уже не смогут так беспощадно взламывать серых, тем самым уменьшится суммарное количество очков по взломам.

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

Это сугубо мое мнение и оно может отличаться от мнения общественности. Критика и комментарии приветствуются.

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

14 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
отличная статья, спасибо

я думаю, что достаточно разделить участников div-1 и div-2 в разные комнаты - этого будет достаточно

всё-таки задачи типа A - действительно большая редкость; кроме того, я думаю, что в будущем задачи с очевидным решением и неочевидным подводным камнем будут иметь большую стоимость, чем стоимость задачи A
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Не обязательно, если в комнате два потенциальных взломщика и 24 взлома, они наберут по 12. Взломы же появляются постепенно. Возможность первым поймать взлом зависит ещё и от того, сколько времени уделяется обновлению страницы с комнатой (а не решению следующих задач). Ещё довольно сильная зависимость от скорости интернета и тормознутости браузера.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Я и не говорил что так будет. Я просто привел в качестве примера номер комнаты из последнего контеста, где произошла такая ситуация, причем взломщки начали примерно в одно время и в итоге набрали по 12. Так как они начали в самом начале, шансов одному реализовать все взломы в этой комнате ни у кого не было, а значит и приблизиться к победителю контеста из этой комнаты никто не мог даже гипотетически (я не говорю про решение всех 5-ти задач).
14 лет назад, # |
Rev. 4   Проголосовать: нравится +6 Проголосовать: не нравится

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

В первом приближении формула может выглядеть как (кол-во взломов)*(баллов за взлом) / (кол-во посылок) = const. Хотя, наверняка для сложных задач в таком виде она не подходит.

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

UPD: Не, вообще кривая формула получилась... Но сама идея, вроде, здравая)

14 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится
С такой задачей, как A с раунда 60, вдруг оказывается, что есть ещё некоторые стратегические моменты, которые даже в двух одинаково урожайных комнатах позволяют набрать разное количество взломов.

В раунде 60 я ломал в основном довольно универсальным тестом (0 0 0 1 1 0). Чтобы вновь послать решение, нужно пройти этот тест, и чаще получается придумать и реализовать при этом полное решение, чем случайно обойти его неправильным. Таким образом, тратится меньше времени на придумывание каждого конкретного взлома, зато по второму разу особо не поломаешь (мне удалось только 2 из 27 раз; ещё несколько неправильных решений было, но я их не нашёл).

Если же на каждое решение давать самый слабый тест, который его завалит, велика вероятность, что и перепосланное решение будет неверным. Больше времени тратится на каждый взлом, зато и общее количество взломов получается больше. Например, у победителя (Kenny_HORROR) 14 из 39 взломов — повторные, а количество разных взломанных людей 25, как и у меня. Думаю, в том числе и из-за более индивидуального подхода к каждому решению.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Я ещё вчера посчитал, что среди 12 моих взломов (да, я один из тех двух из шестой палаты) было 6 (!) различных тестов.

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

    А ещё у нас в комнае было целых два участника, которых взламывали по три (!) раза! ruban и xiaoyoulei. Причём на ruban'е свою сотню получил каждый из трёх активно ломавших. Ещё четыре участника были взломаны дважды.

    И повторюсь ещё раз, что Хороший тестировщик важен не меньше, чем хороший программист. ^_^
14 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится
Мне не нравится идея делить дивизионы. Это несправедливо по отношению к слабым участникам, у которых баги будут обнаруживаться значительно медленнее, или не обнаруживаться вообще. Ну и обидно для сильных :)
Для меня взломы вообще любимая часть игры, чем больше, тем лучше :) Причем в таком виде, в каком они здесь, на CF (в виде win-win game то есть), их больше нигде нет.

Вот идея давать разные баллы за взломы участников разного цвета - нравится.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, я заметила, что ты любишь взломы) Спасибо, кстати. После того, как ты меня взломала, я подумала-подумала минут 15 и написала полное решение, наломав после этого ещё на 600 баллов других участников)
    Аналогично поддерживаю идею разных баллов в зависимости от цвета участника и против деления дивизионов.
    P.S. Не против, что на "ты"?
14 лет назад, # |
Rev. 3   Проголосовать: нравится +11 Проголосовать: не нравится
Делать разные комнаты для div-1 и div-2, я считаю, не надо. Лучше сделать другие 2 вещи:
1) готовить более сильные претесты (тем не менее, всю задачу они покрывать не должны)
2) давать разное количество очков за взлом разных цветов, например, 25-30-40-55-75-100 (а что будет, если пересчитать результаты последнего раунда с такой системой подсчета очков?)
3) возможно, стоит также уменьшать очки за повторный взлом одного и того же участника
  • 14 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится
    нет, вот пересчитывать раунды не надо

    были правила, все играли по этим правилам; а "после драки кулаками не машут"
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Неофициально же. Посмотреть, что было бы по другой системе и какая из них объективнее
      • 14 лет назад, # ^ |
          Проголосовать: нравится +12 Проголосовать: не нравится
        что значит "объективнее"? объективной системы оценивания не бывает, есть только правила, по которым все участвуют

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

        идея с разными баллами за взломы интересна, но:

        1) может стоит взлом красного поднять не до 100, а даже выше, например, до 150?
        2) сколько вычитать за неудачные взломы? может быть, при такой разбалловке, овчинка не будет стоить выделки?
        3) не слишком ли это тяжело для восприятия? запомнить, сколько баллов дают за какую задачу несложно, а такое распределение цен взломов - другое дело; нужно смотреть, кого мы ломаем и, исходя из этого, определять порядок просмотра кода участников
        4) что с распределением по комнатам? кому-то 10 синих достанется, а кому-то 10 красных и оранжевых; синих-то легко поломать будет и не по одному разу, а вот красных сложно даже один раз
        • 14 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится

          Я тоже поддерживаю изменине разбаловки за взломы участников разного цвета. Ну, а также возможные решения на вопросы выше:

          2) Половину от того что будет полученно в случае удачного взлома.

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

14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Логично ещё привязать стоимость взлома к самой задаче. Например, за А - 20 баллов, за В - 50, ...
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Конечно, умение быстро читать чужой код и быстро находить в нем ошибки очень ценное, но, думаю, не главное качество хорошего программиста. И когда уже появляются посты на тему "Как правильно ломать, чтобы наломать побольше" (пост не критикую - интересный), то, по-моему, это означает какой-то перекос в системе оценивания CF.
Тоже считаю, что стоимость взломов следует сделать разной в зависимости от цвета взломанного. Тут даже можно провести аналогию с шахматами (раз уж основной рейтинг Эло оттуда), где в коэффициентах Бергера, Бухгольца более ценны победы над сильнейшими участниками (там, правда, при равенстве очков). 
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    В Бухгольце - нет :)
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну, в том смысле, что результат встречи по швейцарке не учитывается при подсчете, то нет. Но, в том смысле, что труднее было набрать свои очки, играя с "красными", чем с "серыми", то да.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        И поэтому в таблице результатов частенько попадаются люди с 7 очками и коэффициентом 35, а следом - с 6.5 очками и коэффициентом 50. Швейцарка удивительно необъективна, но другой системы там просто нет.

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

        Идеальная стратегия взломов вроде как понятна - нужен "индивидуальный подход" к каждой жертве, т.е. ломать тестами, покрывающими лишь 1 баг из нескольких. Другое дело, что такой подход требует больше времени, и может оказаться так, что кто-то взломает раньше тебя. Поэтому мне кажется: видишь баг - немедленно ломай первым пришедшим в голову тестом (наверное, все так и делают).
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Оффтоп.
          Приятно встретить шахматиста, не очень стало это сейчас популярно. И о проблемах швейцарки я, естественно, знаю.
          Мою фамилию когда-то можно было даже найти в "Энциклопедии шахматных дебютов". В качестве примера того, как не надо разыгрывать защиту Бенони черными :).
          • 14 лет назад, # ^ |
            Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
            Я 8 лет своей жизни убил на шахматы. Потом в 10 классе познакомился с программированием. Программирование намного интереснее.

            Кстати, шахматы вполне себе популярны сейчас. Но чем выше твой уровень, тем сильнее осознаешь, что шахматы превращаются в тупое заучивание дебютов.
            Тем не менее, меня все еще можно встретить на сайте chessplanet.ru по выходным в 18-00
            • 14 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
              У меня стаж был побольше, я даже рассматривал, как вариант, сделать шахматы своей профессией. Но на 5-м курсе познакомился с программированием...
              Ну, а "убил на шахматы" - это, как минимум, некорректно по отношению к шахматам. Не думаю, что эти занятия нам не помогли в программировании.
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                И все-таки мне кажется, что не помогли. Хоть многие и считают, что шахматы полезны. Правда, проверить это невозможно.

                Убил - да, некорректно немного. Все-таки должно быть у ребенка хобби какое-то.
                С другой стороны, я мало чего добился в шахматах, а в жизни они особой радости не приносят.
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              Извините, но некорректно без примечаний существенно менять текст своего уже опубликованного поста. Если бы я уже в первом варианте поста увидел "тупое заучивание дебютов", то сразу же понял, что к шахматам Вы не имеете отношения, и отвечать бы не стал.
              • 14 лет назад, # ^ |
                  Проголосовать: нравится +3 Проголосовать: не нравится
                Да, я очень пессимистично настроен по отношению к шахматам. Разве это неправда, про дебюты? Взгляните на современное положение дел, сейчас гроссмейстеры именно анализируют дебюты до 25-30 хода, стараясь найти какую-нибудь брешь в текущем толковании теории. Потом эти новинки применяются, теория обновляется - и все повторяется снова. Скучно же.
14 лет назад, # |
  Проголосовать: нравится -10 Проголосовать: не нравится
все-таки надеюсь, что задача А в прошлом раунде была случайностью, а вот идею разделить див1 и див2 по комнатам по-моему давно пора реализовать
14 лет назад, # |
  Проголосовать: нравится -10 Проголосовать: не нравится
Полностью согласен. Как я заметил на раунде , у одного парня ничего не прошло, но он занял 70е место благодаря взломам, что по мне не правильно. И претесты нужно жестче делать, что-бы не было простых ошибок, типа точности вывода и некоторые частных случаев(возможно не всех).
  • 14 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

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

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

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

    но предыдущий раунд в плане взломов все-таки фейловый, имхо

    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Не только по взломам на частных тестах, просто обидно, что слетаешь изза мелочей , когда написал правильное решение, как на последнем раунде на задаче С, но слетел по точности(уже с 55ого контеста на мелочах слетаю). Я понимаю что точность нужно правильно ставить, но лучше поставить тест в претесты, имхо. Никому свое мнение не навязываю, потому-что уверен, что кто-то обязательно хочет сказать "Думать нужно было!".
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Я уже писал, но напишу еще раз:
Что, если запретить человеку со взломанным решением взламывать? Плюсы: дополнительный стимул взламывать быстро, при слабых претестах решения получат преимущество над разумными идеями, а те - над совсем бредом, дополнительная тактика - взломать решение у того, кто только что его заблокировал или у того, кто много взламывает.

Кстати, почему бы не изменять рейтинг не по общей таблице, а по ситуации в комнате?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Тогда рейтинг будет сильно чувствителен к распределению участников по комнатам, и поэтому, скорее всего, не будет отражать общий относительный уровень.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Это был коммент к первому предложению, или ко второму?
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        ко второму
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Тогда мне кажется, что этот топик как раз о том, что при обычном распределении ты можешь потерять ~1000 очков, если тебе не повезет с комнатой. Хотя тут есть другой минус - человек 15 будут регулярно первыми. Как между ними распределять рейтинг - не очень понятно. Можно попробовать в каких то пропорциях учитывать и то и то. В любом случае те люди, что с тобой в одной комнате в более равных условиях с тобой, чем остальные.
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            В этом тоже есть свои проблемы. Одно дело будет комната где в основном фиолетовые - оранженвые, а другое дело - комната положим с Геной, Петром и ещё кем-то из топ. 10 (чисто гипотетически предположим что такое будет). И тут получится, что ты решил задач больше чем первый из другой комнаты, но по результатам ты вышел хуже, что не есть хорошо.
            • 14 лет назад, # ^ |
                Проголосовать: нравится +1 Проголосовать: не нравится
              Комната с Геной, Петром и т.д. - это как надо совпасть. Думаю, что можно специально задать равномерное распределение по комнатам, чтоб не больше одного из top10 и т.д.
            • 14 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
              double
14 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
А  вот он взломал решение ACRush.

Вот приятно просто, что есть такие люди. Живет значит спортивное программирование!
14 лет назад, # |
  Проголосовать: нравится +21 Проголосовать: не нравится
"Из-за распределения по комнатам очки за взломы могут варьироваться даже на +-1000"

На топкодере то же распределение по комнатам, и там так же может получится, что либо в комнате много сильных участников, либо ВООБЩЕ нечего ломать, в то же время в других комнатах можно сделать +200 и занять хорошее место. Видел как на топкодере синий участник послал 250, которая в итоге не прошла тесты, но когда он понял, что она не пройдет, на челендж фазе сделал 250 на своём баге, и занял 30-40 место, что довольно круто.
Другое дело, что там правила не менялись уже много лет и не собираются, и ни у кого нет мыслей их менять. Я не говорю, что текущая система идеальна, просто следует как-то сразу определиться с форматом соревнований, а не подстраивать правила после каждого проблемсета, который выбил из колии прошлую систему, потому что всегда кому-то захочется её чем-то улучшить с одной стороны и подкосить с другой :)

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

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    хммм... я думаю, что решить Е и получить за неё 1500-2000 "немного" сложнее, чем сделать 15-20 взломов на задаче, подобной А на 60-ом раунде.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Наверно сложнее, но не всегда же задача А как с 60 раунда. Не так просто набрать даже 500 очков на обычном раунде, а Б вроде не так сложно решить. :) 
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Мне нравится идея разбаловки. А вот делить по дивизионам на комнаты нет, потому что человек с рейтингом 1649 сможет ломать зелёных, а человек с рейтингом 1650 - нет. Так не честно:)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +15 Проголосовать: не нравится
    Зато после по окончанию контеста человек с рейтингом 1649 перейдет в первый дивизион и сможет ломать только фиолетовых и выше.

    На топкодере, например, человек с рейтингом 1199 решает более простые задачи и может ломать серых, а человек с рейтингом 1200 уже решает более тяжелые задачи и в основном ломают его.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Да, но и рейтингование раздельное
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        а здесь разве не так? о_О

        поправьте меня
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Если так то очень это странно
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            сейчас посмотрю записи Майка, но мне казалось, что участие div-1 и div-2 общее, а рейтингование - подивизионное
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              С точки зрения тервера такое решение было бы очень странным
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                цитата из Codeforces Beta Round #7:

                "С сегодняшнего контеста рейтинг по дивизионам для общих контестов будет считаться отдельно по двум таблицам положений участников. То есть подсчет рейтинга будет эквивалентен проведению двух контестов отдельно для каждого дивизиона по общим задачам."

                может были нововведения, но, честно говоря, сомневаюсь
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Тогда следовало бы делить по комнатам раз подсчеты раздельные.
14 лет назад, # |
Rev. 3   Проголосовать: нравится +6 Проголосовать: не нравится
Я тут поразмыслил и появилась такая идея:

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

... 10й и последующий
Успешный взлом +100 +90 +80 ... +20 +10
Неуспешный взлом -50 -45 -40 ... -10 -5

Но это только для одной задачи. Т.е. если я сделал два неудачных и один удачный челленджа по задаче A, и один удачный челлендж по задаче B, то я получу ( -50 + -45 + 100 ) + 100 = 105 очков.

А 20 взломов по задаче A будут равняться 650 очкам, а не 2000. :-)

Т.е. взламывать много будет всё же немного выгодно, но не так выгодно, как решать задачи.

Возможно лучше будет вот такую разбалловку:
5й и дальше
Успешный взлом +100 +80 +60 +40 +20
Неуспешный взлом -50 -40 -30 -20 -10

  • 14 лет назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится
    Я вот только одного не могу понять - а почему решать задачи должно быть выгоднее?
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я этого тоже не понимаю. =D

      Но так как некоторые люди недовольны такому выгодному хакингу (+72 у этого поста), то предлагаю такой способ.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      потому что решение задач - основная цель контеста, остальные фаны должны дополнять контест, а не заменять его
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Для того, чтобы компенсировать выигрыш в задачу надо сделать что-то очень outstanding в редких случаях все-таки. Мне кажется (не люблю говорить за всех, но все-таки) что большинство противников взломов против того, чтобы принимать какие-либо решения. Ну вот не хотят они и все. Хотят, чтобы решать задачки, причем в порядке А-Е, было лучшей тактикой. А когда есть несколько тактик и какая из них лучшая зависит от задач - это мы уже не хотим
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          нередко хорошее преимущество получали участники, решающие в порядке A, B, E, C, D, поскольку падение баллов у E происходит быстрее, чем у других задач

          я наблюдал за Геной на 58-м раунде: он сдал A, B, заблокировал их, сделал ряд взломов, решил D, сделал ещё серию взломов, сдал C

          в общем, тактик существует миллион и без всяких адских задач, которые дают +3800 на взломах
          • 14 лет назад, # ^ |
              Проголосовать: нравится +5 Проголосовать: не нравится
            Ну, если быть совершенно точным, то Гена сначала сдал A, потом написал жюри о различиях в русском и английском условиях, потом сдал B, потом увидел, что жюри тормозит, а все вокруг "наживаются", и уж тогда стал заниматься "разбоем", не взирая на "native language" участников. 
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Обычно они только дополняют. Не так уж часто люди выигрывают только из-за огромного количества взломов.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      Потому что, если идеальная тактика зависит от задач, комнаты и т.п. смотреть в таблицу результатов станет важнее, чем прогать, а контест превратится в лотерею, кто и что умеет лучше делать. Видимо, лотерею все и не хотят. Обидно немного вкалывать пол контеста над сложной задачей, а потом обнаружить, что на этот контест другая тактика и время потрачено зря. Здесь конечно нет веской причины, только размышления на тему.
      • 14 лет назад, # ^ |
          Проголосовать: нравится +10 Проголосовать: не нравится
        А что значит "обнаружить"? Понять, что в простой задаче есть подводные камни важно и для ее решения. Если есть такое понимание то понятно, что надо пару минут потратить на взломы
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          это нормально: получить 200-300 баллов за то, что нашёл подводный камень и смог завалить им других участников

          нормально, пожалуй, даже получить 1000 баллов за совсем хитрый ляп

          но ненормально, когда 70% всех твоих баллов за контест получены на взломах и ты выигрываешь за счёт этого раунд
          • 14 лет назад, # ^ |
              Проголосовать: нравится +1 Проголосовать: не нравится
            Ну можно же согласиться, что задача А в последнем раунде была исключением. А настраивать систему ради исключений по-моему не совсем правильно
            • 14 лет назад, # ^ |
                Проголосовать: нравится 0 Проголосовать: не нравится
              полностью солидарен

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

      Потому что почти все взломы делаются на задаче А на глупых ошибках.

      Найти пару групых ошибок, вбить несколько тестов, а потом мониторить все решения, и соревноваться с другими кто первый их уронит -- это не круто. И не круто ронять на переполнении инта.

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

»
8 лет назад, # |
  Проголосовать: нравится -26 Проголосовать: не нравится

А как взламовать ??

  • »
    »
    8 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    1. Решаешь задачу.
    2. На Основной странице типо этой напротив решенной задачи есть замочек. Блочишь таску, кликнув на замок, выскочит предупреждение.
    3. В комнате просматриваешь чужие решения по нашей решенной таске и прикидываешь на каком тесте оно упадет. Под кодом есть кнопка взломать. Нажимаешь. Выскакивает окно для ввода теста на взлом. Вводишь его, либо загружаешь генератор. Нажимаешь кнопку взломать. Получаешь вердикт.
    4. Радуешься, если "Успешный взлом". Огорчаешься, если "Неудачная попытка взлома".