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

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

Вначале о рейтинге. Сейчас на Codeforces видна инфляция, во всяком случае, мне видна. Это происходит из-за большого количества участников, сыгравших один-два контеста и больше не появлявшихся.
Рассмотрим подробнее: сейчас у нас новый участник неявно получает рейтинг 1500. Как правило, новичков регистрируется гораздо больше, чем опытных программистов, поэтому на первом же своем контесте этот рейтинг сливается. А так как средний рейтинг неизменен, эти очки достаются верхней половине. Если так будет продолжаться, то через пару лет все, кому не лень, станут красными.

Есть такое предложение:
1) Рейтинг у участника появляется только после написания им 5 контестов.
2) Начальный рейтинг участника при этом не полагается 1500. Вместо этого для каждого из первых пяти контестов будем считать для него такой рейтинг, что, обладая им, он не изменил бы его по результатам соревнования.
3) Как только пять контестов пройдет, рейтинг участника становится равным среднему арифметическому пяти чисел, полученных в п.2.
4) При этом при подсчете рейтинга для участников, уже имеющих рейтинг, новички учитываться не должны.

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

Далее, странно, что, скажем, в турнире Manthan последние места слили всего около 50 очков рейтинга. Вот мои мысли об этом.
Рейтинг Эло вроде как из шахмат украден, поэтому почему бы не представить таблицу контеста как таблицу кругового турнира по шахматам? Примем, что участник A обыграл участника B, если он набрал больше очков, и посчитаем рейтинг по всем таким "партиям". При этом коэффициент изменения должен быть очень небольшим, ведь в контестах участвуют более 1000 участников.

Есть ощущение, что текущий расчет ведется как-то по-иному, потому что при описанной выше "шахматной" системе слив рейтинга последним местом должен быть довольно существенным - ведь он проиграл всем, вообще всем, в то время как в соперниках было около 200 участников, равных ему по силам!


Теперь о самом наболевшем: конечно же, о взломах.
Конечно же, если претесты делать покрывающими все мыслимые случаи, то от взломов ничего не останется, и контесты превратятся в ACM. Так что, как и претесты нужны почти полные (это пожелание авторам), нужна и возможность взломов. Но, если посмотреть на результаты последних раундов, то можно увидеть участников, заработавших более 3000 очков на взломах (при этом в последнем контесте задача A, на мой взгляд, была достаточно хорошей). Напомню, что суммарная стоимость задач - 7500. Не кажутся ли вам эти цифры немного несопоставимы? Решаешь на первых минутах A и B, делаешь 30 взломов = почти 4500 очков и ты примерно в топ-20! А если решать все задачи, то, скорее всего, получишь даже меньше, ведь стоимость то убывает.

Я сам на Manthan-е отправил задачу A на 8 минуте, заблокировал, т.к. мои первоначальные тесты она проходила. Потом, минут через 10, я неожиданно понял, что отправил фигню! Открыл комнату и набрал 1000 очков. А стоимость задачки - 500. Ошибся, не сдал задачу, а в итоге набрал на этом в 2 раза больше очков. Не слишком это честно, что-ли.

Все-таки надо что-то менять. Почему-то лучшим выходом мне видится изменение очков за взломы. Тут есть сразу несколько предложений, которые вполне можно и объединить. Они были высказаны уже давно, а я их тут просто объединю.
1) Изменить очки в зависимости от стоимости задачи (сам я проголосую за этот пункт). Например, за удачные взломы по задачам A,B,C,D,Е давать 40, 60, 80, 100, 120 баллов. По-моему, такой подсчет достаточно корректен: 1200 очков за 30 взломов по задаче A вроде бы нормальный результат (30 взломов набирает 1-2 человека за контест), в отличие от 3000 очков. Хочешь получать по 100 баллов - а реши-ка ты сначала задачу D!
2) Уменьшать очки по мере увеличения числа взломов. Например, за первый взлом давать 100% от номинала, за второй - 90%, ......, за десятый и последующие - 10%. Здесь первые взломы будут неплохо поднимать вас вверх в таблице, а последующие - не очень сильно. Получится "поломал сам - дай поломать другим". Или "не дай поломать другим, но получи от этого мало очков". И выбираем, что выгоднее.
3) Изменять количество очков в зависимости от цвета/разности рейтинга. Скажем, за взлом своего цвета давать 100% очков, соседних сверху и снизу - 120% и 80% и т.д.
Или в зависимости от рейтинга: очки = номинал * (1 + (чужой_рейтинг - твой_рейтинг) / 1000).
Что будет: 1500 ломает 2000, получает 150% очков, 1900 ломает 1400 - получает 50% очков. Надо будет еще как-то правильно отнормировать эту формулу, но вообще это смотрится неплохо.
  • Проголосовать: нравится
  • +27
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится
Все-таки надо что-то менять.
Вы так уверены? :-)
  • 13 лет назад, # ^ |
      Проголосовать: нравится -11 Проголосовать: не нравится
    Да. Будет лучше, если взломы будут расставлять на свои места тех, кто решил одинаковое количество задач. Но никак не выводить участника с 2 задачами вперед участника с 3 задачами.
    • 13 лет назад, # ^ |
        Проголосовать: нравится -8 Проголосовать: не нравится

      > Но никак не выводить участника с 2 задачами вперед участника с 3 задачами.

      1) 2500 + 2000 > 500 + 100 + 1500 

      2) 320 + 640 + 960 < 800 + 1200

      Пожалуйста. :-) И никаких взломов.

      • 13 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится
        > 1) 2500 + 2000 > 500 + 100 + 1500
        > 2) 320 + 640 + 960 < 800 + 1200

        Прецедент в студию!
        • 13 лет назад, # ^ |
          Rev. 5   Проголосовать: нравится +17 Проголосовать: не нравится
          Гыы. Хотите примеров много и разных? Их есть у меня!

          1) http://codeforces.com/contest/67/standings
          Кто = * A B C D E
          108 enot.1.10 2184 -2 844 00:39   -1 1340 01:56
          110 ne.rwa.lz 2178 180 01:50 880 00:30 -1 1118 01:44  
          Конечно пример не настолько каноничен как у меня, но всё же!


          Хотя вот и по канону. :3
          http://codeforces.com/contest/41/standings?switchOutOfCompetition=true&outOfCompetition=on
          Кто = * A B C D E
          88 * vsb 3464     -1 1224 01:12 2240 00:26
          99 * tanzaku 2804 490 00:05 952 00:12 1362 00:23   -2
          209 iainws 2006 486 00:07 706 01:01 814 01:46    


          2) http://codeforces.com/contest/66/standings
          Кто = * A B C D E
          223 Clasker 1964 +1 / -2 -1 932 00:17 1032 01:18    
          224 segrey 1948 422 00:39 686 01:06 840 01:50    

          Ну тут прямо.. ммм! И даже сделанные взломы дают +0 профита, так что картину не портят. ;)


          широкоширокоширокоширокоширокоширокоширокоширокоширокошироко
        • 13 лет назад, # ^ |
            Проголосовать: нравится +8 Проголосовать: не нравится

          Прецеденты есть. Всё ещё будете бороться со взломами?

          Вам так важен рейтинг?

          Опыт - ничто, график ретинга - всё? :)

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

            Просто хочется, чтобы результаты соревнований и рейтинг как можно точнее отражали навыки олимпиадного программирования.
            Сейчас это не совсем так: рейтинг считается очень странно, а несбалансированные очки за взломы позволяют подняться высоко вверх тем, кому там не место.
            • 13 лет назад, # ^ |
                Проголосовать: нравится +29 Проголосовать: не нравится

              > тем, кому там не место

              ага, ага, фиолетовым и синим)

              Да не парьтесь вы по поводу ретинга) Решайте лучше и быстрее и всё)


              Может ещё пожаловаться, что я вот задачу то почти решил, но из-за эпсилонов/константы/неведомой ерунды она не прошла системные тесты и я опустился в рейтинге :(((( пичалька, это не честно! Даёшь полные тесты сразу, я же решил задачу!

            • 13 лет назад, # ^ |
                Проголосовать: нравится +2 Проголосовать: не нравится
              Рейтинг отражает навыки участия в соревнованиях Codeforces. А строится рейтинг по монитору. А монитор строится по результатам соревнований. А значит если кто-то занял 10-е место на контесте (взломами или задачами не важно), то ему самое место в верхней части рейтинга.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Сколько уже постов было на тему взломов. Вот только не уверен я, что они хоть как-то влиюят на ситуацию...

    Интересно узнать мнение большого начальника по этому поводу. Всё-таки посты к нему в большинстве направлены.
    • 13 лет назад, # ^ |
        Проголосовать: нравится +16 Проголосовать: не нравится
      Наоборот. Вот уже топики из прямого эфира удаляются и систему вклада переписали. Думаю, что надо, чтобы прошло некоторое время, за которое будет высказано достаточное число предложений и все будут обсуждены сообществом. Тогда и будет выбрана идея-победитель.
13 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
К взломам: можно сделать цену взлома обратно зависящей от текущей цены задачи. То есть чем позже, тем больше очков за взлом, ну и за дорогие задачи больше - это безусловно.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    Нет-нет, тогда это будет напоминать игру на аукционе: вот сидят двое, заблокировав задачу, и ждут, чтобы побольше времени прошло, но при этом и боятся, что кто-нибудь уведёт фраг из-под носа. Неужели это хорошо?
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Хм, сама система взломов - это охота. Рост прибыли и аукционные гонки только увеличат фан, кто хочет решать - пусть решает.

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

      • 13 лет назад, # ^ |
          Проголосовать: нравится +5 Проголосовать: не нравится
        Охота - да. Так вот пусть это будет нормальная охота: кто первый убил, тот и победил, а аукцион - как-то не...
  • 13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Вот есть в одной комнате два чувака которые прошли претесты по какой-то задаче. Один из них увидел палево у другого. Ты предлагаешь в этом случае ждать конца контеста чтобы поломать задачу?о_0
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
    <Коммент не туда ушёл.>
13 лет назад, # |
  Проголосовать: нравится -11 Проголосовать: не нравится
Ни с чем не соглашусь. Давать за взломы разное количество очков относительно рейтинга-неправильно. А то получается, взломаешь зеленого-и еще и должен останешься:) Да к тому же коды новичков обычно тяжелее читаются чем опытных игроков-у опытных обычно названия переменных стандартизированы, чтобы было удобнее, быстрее и чище, а у новичков как захотел, так и назвал, код более нечитабельный. Не говоря уж о том что есть такие личности которые делают его еще более нечитабельным специально, они в основном зеленые. Давать разные очки за взломы за задачи-тоже неправильно, ибо набажить в А сложнее чем в Е. Просто в последних двух контестах такая задача А получилась что можно было набажить. Уменьшать очки за каждый следующий взлом-вообще верх тупизма. Что вообще значит "поломал-дай другим"? Не хочу давать!
Рейтинг действительно пересчитывается странно. Но то что ты предлагаешь-глупость. Новичкам, только зарегистрировавшимся на кодфорсе, хочется сразу узнать свой рейтинг, а не ждать пять контестов. 
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Можно не ждать 5 контестов - можно выводить то, что на данный момент получается. Надо просто в эти 5 контестов пересчитывать рейтинг особым образом.
  • 13 лет назад, # ^ |
      Проголосовать: нравится -9 Проголосовать: не нравится
    "Не хочу давать!" - это как-то странно. Представьте, что в правилах вдруг появилась пометка "дать JKeeJ1e30 +10000 баллов в начале контеста". Потом кто-то создал тему о том, что это как то странно выделять JKeeJ1e30 из общей кучи и позволять ему всегда выигрывать. И тут Вы пишете "Уменьшать мне бонус в начале контеста - вообще верх тупизма. Что вообще значит "дай и другим повыигрывать"? Не хочу давать!".
    • 13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится -6 Проголосовать: не нравится
      Люди, которые взламывают, свои баллы заслужили. Это моя позиция. Человек, который сделал 19 взломов, нашел то чего не нашли 19 его сокомнатников. Поэтому он свои баллы заслужил
      • 13 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится -7 Проголосовать: не нравится
        Не нашли, потому что не искали. Они (большинство) в это время решали задачи, т.к. считают это главной и наиболее интересной частью соревнования. А с точки зрения конечного результата в выигрыше может оказаться тот, кто с самого начала контеста основное внимание взломам уделял.
        Дело не в количестве взломов, а в том, что за первые 15 минут можно обеспечить себе очень приличный конечный результат, а своим сокомнатникам и не оставить чего ломать. И те, кто решают, оказываются в невыгодной ситуации.
        Поэтому, я и предлагаю самый простой выход: несколько сдвинуть начало challenge-фазы от начала контеста. Чтобы сначала все решали, а потом уже в конкурентной среде взламывали.
        UPD. Да еще надо посмотреть, что он такого "нашел". Что результат не лезет в int, что на максимальном тесте не проходит N^2 ?
        • 13 лет назад, # ^ |
            Проголосовать: нравится +3 Проголосовать: не нравится
          В этом и есть единственный маневр для тактики - зачем же его убирать?
        • 13 лет назад, # ^ |
            Проголосовать: нравится +18 Проголосовать: не нравится
          По-моему, проблема со взломом задачи A несколько надуманна. Половина комнаты обычно не сдаёт A за первые 15 минут, и задача A обычно не самая падучая (кроме последних двух-трёх соревнований). Если кто-то так уверен, что, отвлекшись от B и сидя в засаде на A, он заработает больше — это его осознанный выбор; мне кажется, в среднем соревновании больше получится слить баллов на времени за остальные задачи, чем набрать их на взломах в первые 15 минут.

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

          Идея открывать взломы только после какого-то момента мне кажется неправильной. Сейчас, сдав задачу раньше, я обеспечиваю себе преимущество в том, что и ломать могу раньше. Время начала взломов у каждого участника своё, зависящее от умения (или неумения :) ) решать задачи. А если все начнут ломать одновременно (как на ТопКодере), на результат сильнее, чем сейчас, будет влиять всякая фигня типа скорости инета и как раз слабее — способность взлома и умение решать задачи.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Тут понятно, что могут быть разные стратегии.
        Главное чтобы не было таких ситуаций, что человек сдал 1-2 задачи за 20 мин, а потом сидел жал тупо F5 каждые 10 секунд до конца контеста и отлавливал явно неверные решения, которые почему то прошли претесты. То есть он как-бы работал, взламывал и заслужил за труд высокий рейтинг?
        Поэтому и предлагают либо уменьшить очки за взломы, либо разделить участников разных дивизионов, либо усложнить претесты - есть много вариантов.
        • 13 лет назад, # ^ |
            Проголосовать: нравится +4 Проголосовать: не нравится
          Мне кажется да, он работал и заслужил высокий рейтинг. Человек который умеет быстро ловить баги не менее важен чем тот кто решает задачи. Независимо от того, промышленное или спортивное программирование. В промышленном я бы сказал что ловля багов даже важнее чем в спортивном. Это номер раз. Вот я не умею тестировать задачи и все время сдаю с больших плюсов на АСМ когда один пишу, а на кодфорсе у меня зачастую решение ломают или решение не проходит систесты. Но в команде у нас есть человек который на каждое мое решение тут же придумывает десяток тестов, мы их набиваем и если решение разумно после этого зачастую проходит систесты.
          • 13 лет назад, # ^ |
            Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
            Мне кажется, что высокого рейтинга достоин тот участник, который и решать и взламывать умеет хорошо. А если он только взламывать хорошо умеет, он не должен на двух задачах попадать в двадцатку.
            • 13 лет назад, # ^ |
                Проголосовать: нравится +5 Проголосовать: не нравится
              Может быть,.. перемножать баллы за взломы и баллы за решения?

              =)
              • 13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                А если решение слетело - давать 0? И если не взломать ничего - тоже давать 0? Очень веселая система :)
                • 13 лет назад, # ^ |
                    Проголосовать: нравится +10 Проголосовать: не нравится
                  Дык :) .
                  • 13 лет назад, # ^ |
                      Проголосовать: нравится +3 Проголосовать: не нравится
                    Тогда надо еще общий результат - произведение результатов по всем задачам.
                    • 13 лет назад, # ^ |
                        Проголосовать: нравится +4 Проголосовать: не нравится
                      Останется написать 2 задачи добить до -n результаты взломов по ним)
                    • 13 лет назад, # ^ |
                        Проголосовать: нравится 0 Проголосовать: не нравится
                      Не прибавлять и умножать, а отнимать и делить! :)
          • 13 лет назад, # ^ |
              Проголосовать: нравится -9 Проголосовать: не нравится
            Человек который умеет быстро ловить баги не менее важен чем тот кто решает задачи.

            А причем здесь это? На топкодере тоже важен как скилл решения задач, так и скилл ловить баги. Но там можно сказать, что выигрывает тот, кто хорошо решает и/или хорошо ловит баги. А здесь выигрывает тот, кто обладает навыком понимания что выгодно в данный момент делать, решать или искать баги.

            Этот "навык" абсолютно бесполезен в реальной жизни. И более того, тут довольно много зависит от везения. Так вопрос, зачем это нужно? Насколько я понимаю, это не зачем не нужно, просто изначально хотелось как-то дистанцироваться от топкодера и был выбран такой вариант.

            Мне кажется, что различий между КФ и ТК и так хватает и надо бы сделать по-нормальному и разделить фазы кодинга и тестирования.
            • 13 лет назад, # ^ |
                Проголосовать: нравится +17 Проголосовать: не нравится
              Этот навык очень полезен и в реальной жизни, и особенно в олимпиадах. Потому что это частный случай способности выбрать правильную стратегию.

              Можно привести очень много примеров, когда в ACM-контесте при смене стратегии на более подходящую у команды было бы как минимум на одну задачу больше.
              • 13 лет назад, # ^ |
                  Проголосовать: нравится +6 Проголосовать: не нравится
                >Потому что это частный случай способности выбрать правильную стратегию.

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

                Ну а про ACM, так там вообще кодинг и "взлом" идет параллельно. Распечатал и сиди взламывай, а товарищ пусть кодит.
            • 13 лет назад, # ^ |
                Проголосовать: нравится +8 Проголосовать: не нравится
              В реальной жизни навык понимания того, что выгодно в данный момент делать, как раз-таки и является очень полезным :)
              • 13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Это бесспорно, но только я говорил не об этом навыке. Вы там важный суффикс от моей фразы выкинули, это против правил :)
13 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Мне понравилась идея уменьшать очки по мере увеличения числа (своих) взломов, но надо только добавить - по мере увеличения числа (своих) взломов по этой задаче. Про изменять очки в зависимости от стоимости задачи - тоже очень правильно. А вот по разности рейтинга - да, вопрос спорный.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Как бы вот...  Хотя мы ж фиолетовых не слушаем)))
    • 13 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится
      Ай, да ладно... вот мне положа руку на сердце вообще как-то на всё это пофиг. Какой будет формат соревнований - так и будем играть, в крайнем случае рассматривая это как зарабатывание не рейтинга, но экспы. Всё равно никакую совсем уж бредовую идею Михаил Расихович реализовывать не станет, система всегда будет более-менее разумной.
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        1) Что-то ответ совсем не по теме)
        2) Я про то, что я уже предлагал неделю назад убывающую стоимость взломов. :)
        3) Про икспу абсолютно согласен. Ну ещё возможно ради фана стоит тут соревноваться. :)
        • 13 лет назад, # ^ |
            Проголосовать: нравится +13 Проголосовать: не нравится
          1) Да я просто зашёл "усталый и злой", посмотрел ещё раз на все эти споры, и что-то стало до того уныло, что ответил где попало, сорри.
          • 13 лет назад, # ^ |
              Проголосовать: нравится +20 Проголосовать: не нравится
            Вот поэтому не надо заходить сюда "усталым м злым" и отвечать что попало, а то вас внезапно заплюсуют. :o)
            • 13 лет назад, # ^ |
                Проголосовать: нравится +3 Проголосовать: не нравится
              Кстати, я тут подумал, что ведь заплюсовать можно употреблять, как зааплодировать: "Вам внезапно заплюсуют", "Я аж заплюсовал" и т. д.
              • 13 лет назад, # ^ |
                  Проголосовать: нравится +17 Проголосовать: не нравится
                «Браво! Бис!» - кричали восхищенные зрители и плюсовали.
                • 13 лет назад, # ^ |
                  Rev. 2   Проголосовать: нравится +2 Проголосовать: не нравится
                  Или даже так: "Я плюсанул и закурил" (не здесь, а ВКонтакте в комментах к эротическому фото).
13 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Я бы предложил две вещи.

1. Разделить дивизионы
Тогда новички не будут влиять на рейтинг первого дивизаона, что конечно более честно.
Как именно разделить не столь важно. Можно делать контест не рейтинговым для второго дива,
можно разбрасывать по разным комнатам дивизионы и для второго давать только задачи A, B, C.
Идеально конечно дать столько же задач, но других, но это видимо слишком напряжно для авторов контеста.

2. Ограничить очки взлома по каждой задаче сверху теми очками которые человек получит в случае если он пройдет финальные тесты. Т.е засабмитил первую задачу на 425 очков, и соответственно за взломы по ней получишь максимум столько же. А когда получил уже столько, то не давать даже смотреть чужие исходники по ней.
  • 13 лет назад, # ^ |
      Проголосовать: нравится -9 Проголосовать: не нравится
    Единственная точка зрения, с которой здесь можно стопроцентно согласиться - необходимость разделения на дивизионы. Повторюсь, сказав, что не понимаю, зачем в названии контеста писать div2 only, если дивизионов в принципе нет в системе. Что такое дивизион? Где тут дивизионы? Мы решаем все в общей куче. Серые и зеленые дико кормят взломщиков и дарят им небывалую выгоду. А "Div2 only" всего лишь сформулированная в TopCoder-Style "Under 1650". 
    Давать больше баллов за взлом более сложной задачи - глупо. Ну есть же задачи, в которых вся фишка в том, чтобы решение было асимптотически верным. Например, нужно решение за O(NlogN), а серо-зеленый участник написал за O(N2). Претесты, зачастую, проходит все что угодно (скорее всего даже куб бы прошел). Тогда, взломщик сразу же ломает человека, который не умеет оценивать асимптотику, и получает много баллов. Часто случается, что таких серо-зеленых участников может оказаться много. Представим, что в этом контесте есть задача А, которая тупо на выполнение того, что задано в условии. На ней и поломать-то некого, но и баллов за нее дадут столько, что и браться глупо.
    Как вариант - нельзя давать за взлом количество баллов в зависимости от сложности задачи.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    По первому пункту можно проводить общие контесты и считать рейтинг независимо, как за два отдельных контеста для div1 и для div2. 
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Насколько я знаю это так и делается.
      • 13 лет назад, # ^ |
          Проголосовать: нравится +5 Проголосовать: не нравится
        Значит, новички и так не влияют на рейтинг первого дивизиона.
        • 13 лет назад, # ^ |
            Проголосовать: нравится +4 Проголосовать: не нравится
          Если комнаты будут раздельные, то тогда не будут влиять.
          • 13 лет назад, # ^ |
              Проголосовать: нравится +4 Проголосовать: не нравится
            Сейчас как-то странно в 1 диве все пишут вместе в одних комнатах, решают одинаковый набор задач а рейтинг считается отдельно по дивизионам.
            А во 2 диве кто больше 1650 почему-то можно участвовать только вне конкурса, несправедливо)
            Мне честно говоря не нравится такое разделение на дивизионы как сейчас. Я уже раньше предлагал отделить участников 1 и 2 дива. Пусть для 2 дива будет привилегией участие в 1 диве и стимулом для развития.
            • 13 лет назад, # ^ |
                Проголосовать: нравится +12 Проголосовать: не нравится
              Привилегией? Для меня участие в 1 диве это тренировка и просто удовольствие. Подразумевается что те кто выше 1650 с легкостью решают див 2 и особого интереса он для них не несет. Бороться за "тренировку"?!
              • 13 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Предполагается что это в большей степени соревнование, чем тренировка, что тоже не мешает получать удовольствие
                если просто тренировка, то к чему?
                >Бороться за "тренировку"?
                это не нужно, есть архивы задач
                Кстати, если брать какие-либо виды спорта, то участники разных дивизионов выступают раздельно
                • 13 лет назад, # ^ |
                    Проголосовать: нравится +8 Проголосовать: не нравится
                  >А во 2 диве кто больше 1650 почему-то можно участвовать только вне конкурса, несправедливо)
                  Тоже интересная позиция...
                  Вот как раз участие второго дивизиона вместе в первым и дает стимул тянуться за игроками более высокого класса. Игроки второго дива в реальном времени могут наблюдать насколько быстрее и профессиональнее действуют игроки первого... это тоже не плохой стимул.
                  • 13 лет назад, # ^ |
                    Rev. 6   Проголосовать: нравится +11 Проголосовать: не нравится
                    Зато, если всех разделить и друг к другу не пущать, у игроков второго дива другая мотивация попасть в первый: иметь возможность воочию понаблюдать, "насколько быстрее и профессиональнее действуют игроки первого".

                    Право учиться тоже надо заслужить! ]:->
                    (Но это уже из серии the truest of the true, так в реальности, к сожалению, очень редко бывает.)
                  • 13 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    Не очень понял в чем стимул.
                    На вашем примере: если вы набираете хотя бы 1 очко то теряете возможность участия во 2 диве в зачет
                  • 13 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится
                    Ну я плакать от этого не буду, напишу хорошо- буду в первом, буду писать вторые дивы, и так же смогу наблюдать кто быстрее и сильнее меня. То что я при этом буду не в зачет... так не это главное, буду стараться остаться в первом. Для меня будет важна оценка своих способностей. То что "слабые" могут поднимать рейтинг на "сильных" это нормально, а если "сильные" переживают, что не получают рейтинг на "слабых" (имею ввиду участие первого в не зачет во втором диве ), то это уже странно. Искренне не понимаю ужаса участия 2го дива в зачет в 1м диве...
                    "Право учиться тоже надо заслужить! ]:->"--образование в России вроде бесплатное)))
                    • 13 лет назад, # ^ |
                      Rev. 2   Проголосовать: нравится -8 Проголосовать: не нравится
                      Ну да, бесплатное... в России пока вообще много чего не идеально.
                      А вообще на нашем факультете это как-то так в большинстве случаев выглядит: задача преподавателя - с минимумом запарки поставить всем зачёт по посещаемости или хотя бы по посещаемости зачёта; задача студента - на это не поддаваться и на занятиях хитрыми наводящими провокационными вопросами извлекать из преподавателя ценную информацию.
                      • 13 лет назад, # ^ |
                          Проголосовать: нравится 0 Проголосовать: не нравится
                        Ну скоро Россия станет "лучше" (я про реформу образования), и лично меня это печалит. И все же как предыдущий комментарий говорит о праве на обучение не понятно.
                        • 13 лет назад, # ^ |
                          Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится
                          Если я правильно понял, в чём вопрос, то логика такая: обучение - получение информации; информация - вещь ценная; за пользование ценной вещью можно либо брать деньги, либо (что лучше) требовать выполнения какого-то полезного дела.
                          P.S. Да, по поводу среднего образования. Вот тут, ИМХО, лучше даже не брать деньги с родителей (ибо ребёнок-то сам заработать пока не может), а предоставлять как бы кредит: потом с этим образованием пойдёт он работать, вот и пусть со школой расплатится, а если не сможет - применить к нему какие-то штрафные санкции.
                          • 13 лет назад, # ^ |
                            Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
                            А налоги всю жизнь за что платить? Что бы не скучно было? 
                            • 13 лет назад, # ^ |
                                Проголосовать: нравится 0 Проголосовать: не нравится
                              Аааа, вон оно как... и типа налог на образование есть... об этом я как-то и не вспомнил, виноват.
                      • 13 лет назад, # ^ |
                          Проголосовать: нравится 0 Проголосовать: не нравится
                        "задача студента - на это не поддаваться и на занятиях хитрыми наводящими провокационными вопросами извлекать из преподавателя ценную информацию"-- а что в этом полезного и для кого? не дать скучать преподавателю? Тут и есть выбор: либо студент тупо отсиживает пары ради зачета, либо он хочет получить знания и получает их.)
                        • 13 лет назад, # ^ |
                          Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
                          Да ничего полезного, это был едкий сарказм. Понятно же, что вообще-то препода должны и учить хорошо, и спрашивать хорошо. А оно вот бывает наоборот по обоим пунктам.
                        • 13 лет назад, # ^ |
                            Проголосовать: нравится 0 Проголосовать: не нравится
                          к сожалению "едкий сарказм" иногда является реальностью...и так действительно приходится делать, потому что преподу тихо пофиг что вообще на паре происходит.
                          • 13 лет назад, # ^ |
                            Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
                            Да, да, да. А препод (доктор наук! профессор! завсектором в Институте!) в принципе готов отвечать на вопросы, а сам рассказывает очень мало (да и отвечает иной раз в духе "это вам знать ещё рано" или "я Вам статью пришлю на эту тему", а потом ничего не присылает). И студентам, которые вообще ничего не знают и не понимают (и даже списать поленились), на экзамене ставит 4, остальным - 5. Тьфу, блин.
                          • 13 лет назад, # ^ |
                              Проголосовать: нравится 0 Проголосовать: не нравится
                            Если это обо всех, то это клевета. Во-первых. Во-вторых, чего вы ждёте от человека, которому всё пофиг? Знаний? Опыта? Более тонких вещей? Может продуктивней заняться самообразованием. Кстати, у нас тут есть люди, которые прославились именно благодаря по большей части самообразованию.
                            • 13 лет назад, # ^ |
                                Проголосовать: нравится 0 Проголосовать: не нравится
                              ИМХО, здесь главная проблема не в том, что страдают хорошие студенты, а в том, что не страдают плохие. Получается профанация.
                    • 13 лет назад, # ^ |
                        Проголосовать: нравится -8 Проголосовать: не нравится

                      Во 2 диве разделение по дивизионам, то есть по разным комнатам.

                      Я за разделение и в первом. Сейчас топы анализируют коды новичков и тыкают их носом. Это бессмысленная трата времени для них.

                      • 13 лет назад, # ^ |
                          Проголосовать: нравится 0 Проголосовать: не нравится
                        С разделением по разным комнатам я согласна. Это уменьшит количество "халявных" взломов.
13 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
Ну или например рейтинг считать без учета участников Не в рейтинге, а для них считать рейтинг как обычно или тоже по особой системе.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Есть такое предположение: рейтинг не решивших ничего в контесте не сильно ухудшился, так как большое количество народу разделило одно место с 0 очков.
Вероятно, если считать всем участникам группы место, например, как медиану группы то можно хоть как-то улучшить ситуацию...
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Насколько я понимаю учитывается только относительное положение(выше/ниже), так что не поможет
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ниже этой группы с 0 очков было несколько человек с -50, -100, -150, и все они потеряли около 50 очков рейтинга
13 лет назад, # |
  Проголосовать: нравится +15 Проголосовать: не нравится
Ошибся, не сдал задачу, а в итоге набрал на этом в 2 раза больше очков. Не слишком это честно, что-ли.

Всё честно. Ты ведь разобрался в чём ошибка и другим "разсказал". Лично я благодарен тем, кто мои решения иногда ломает. Это даёт мне информацию, что в решении есть ошибка, которую я обычно нахожу, после чего решение проходит полные тесты.
  • 13 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится
    Завидую. Вот меня всего два раза успешно ломали, причём оба раза по A. В первый раз я за 40 минут не смог найти ошибку (получается, мне навредили - не знал бы, что есть баг, мог бы решить следующую задачу), во второй - это было за минуту до финальной сирены :(
13 лет назад, # |
  Проголосовать: нравится -10 Проголосовать: не нравится
А может тест взлома делать открытым тому, чью задачу взломали? Пусть человек попытается исправить и перепослать. По-любому часть очков он уже потерял, заодно взломщик не будет иметь, как мне кажется, существенного преимущества по очкам.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится
    ТЕст может оказаться чересчур полезным, и потерянные балы это не компенсируют.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +15 Проголосовать: не нравится
    Тут есть как минимум техническая проблема: если тест дан генератором пятимегабайтного файла на Питоне, и взломанный участник этого языка не знает, то надо либо посылать ему эти пять мегабайт (растёт нагрузка на сервер), либо ставить его в не очень честные условия (изучение языка генератора).
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Зачем изучать как работает генератор? Нет, я конечно понимаю, что в некоторых случаях и от этого может быть польза,  но по большому счёту важен сам тест. В конце концов это лучше чем ничего.
      • 13 лет назад, # ^ |
          Проголосовать: нравится +1 Проголосовать: не нравится
        Правда могу сам себе возразить: в некоторых случаях придётся ставить соответствующее ПО, и в некоторых случаях на это уйдёт слишком много времени. Но всё-равно не вижу в этом ничего несправедливого и нечестного.
  • 13 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    И сразу после этого человек которого взломали берет этот тест и ломает им всю комнату.
    • 13 лет назад, # ^ |
        Проголосовать: нравится -11 Проголосовать: не нравится
      а) надо не забывать, что до него уже кое-кто потрудился;
      б) всю комнату вряд-ли;
      в) чтобы ломать, нужно сначала иметь невзломанное решение или хотя бы исправленное после взлома; если взломали после блокировки, тогда, извините, тест не покажем.
      • 13 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится +4 Проголосовать: не нравится
        Не думаю, что особого труда стоит поставить затычку, если знаешь тест, на котором поломали.

        update: Опять же появится народ, который станут ломать 100500 раз подряд.
        • 13 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится
          Как-то всё у вас уныло. Ну пусть ставит затычку, если задача не заблокирована. Только смысл? Чтобы после этого заблокировать плохое решение и пойти искать, кого с этим тестом ещё не взломали? Маловероятно, что такие найдутся. А его конечно ещё раз взломают. И правильно!

          В конце концов большинство здесь те, кто прежде всего решает задачи. И ломают как-правило тех кто малоопытен или ещё где-то мало. Пусть смотрят на чём взломали и оперативно исправляют.
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Это увеличит число взломов в разы. Не все же догадаются по тесту, насколько верно решение. Больше чем сейчас народу перепошлют с тем же багом(или с другим старым), что и в первый раз.
            Вообще, надеюсь, что вся эта дискуссия заставит авторов уделять больше внимания именно простым задачам и ситуация стабилизируется, даже без прямого участия администрации.
          • 13 лет назад, # ^ |
              Проголосовать: нравится +22 Проголосовать: не нравится
            Ну... Допустим участник решил задачу, но не рассмотрел какого-то крайнего случая. Его взламывают, он получает тест, исправляет свою программу и после этого получает АС. Казалось бы, что тут плохого, человек понял свою ошибку, потратил время на задачу, получил за нее меньше баллов чем если бы сдал ранее, а взломавший его получил заслуженные +100 баллов?

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

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

да, случились некоторые беды, которые привели к диспропорциональному распределению баллов за взломы, но я думаю, что администрация Codeforces учтёт некоторые моменты в плане подготовки контестов и больше не допустит задачи, на которых "кто успел, тот over 9000 за взломы и получил"

заминусуйте меня до смерти (предыдущий комментарий на эту тему набрал, кажется, -4), но я останусь на своём мнении, что участников разных дивизионов нужно помещать в разные комнаты

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

с другой стороны, участники div-1 лишатся прекрасной кормушки, в которой можно прекрасно делать баллы, быстро ища в коде слабого участника два вложенных фора до n, когда n ≤ 105

в результате система сама придёт в равновесие: и волки сыты (прекратится долгое обсуждение системы взломов, проблемы будут решены), и овцы целы (не нужно менять правила проведения соревнований)
  • 13 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Да да да.

    Пиши об этом почаще.

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

  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Согласен с этим мнением.
    Надо уже наконец-то разделить дивизионы.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Можно не разделять дивизионы, а ограничить дисперсию рейтинга внутри комнаты. Будет комната зубров правда :)
    • 13 лет назад, # ^ |
        Проголосовать: нравится +9 Проголосовать: не нравится
      Можно тогда разбить не по дивизионам, а по цветам. И рейтинг отдельно рассчитывать. Не знаю, хорошо ли будет, но по крайней мере прикольно
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        ИМХО плохая идея. Если не брать таргетов и совсем уж плохих программистов, уровень всех остальных не так уж чтобы сильно отличается. Имеющееся разбиение на первый и второй дивизион лучше всего отражает отличие. Внутри первого и второго дива фактически каждый может обогнать каждого.
13 лет назад, # |
  Проголосовать: нравится +26 Проголосовать: не нравится
Не успел закончиться вкладосрач, как начался взломосрач... =\