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

Автор MikeMirzayanov, 19 месяцев назад, По-русски

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

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

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

2. С началом контеста все выглядит вполне по ICPC-шному: все задачи сразу доступны для просмотра/решения, текст условий выглядит простым и понятным. Выбираешь задачу и начинаешь ее решать. Думаю, расположение задач примерно по усложнению неплохая идея. Цель участника — заработать как можно больше баллов.

3. Стоимость задач в баллах определяется следующей таблицей. Например, если была сдана задача B после 10 минут контеста, то за нее начисляется 1000 - 4 * 10 = 960 баллов. За каждую неудачную попытку положен штраф в 50 баллов. То есть, если задача B была сдана после 10-ти минут от начала с 3-ей попытки, то балл за нее равен 1000 - 4 * 10 - 2 * 50 = 860 баллов. Впрочем, сколько бы вы попыток не сделали стоимость решения не может опуститься ниже 30% баллов (см. колонку "Мин. балл (30%)").

Задача

Макс. балл

Мин. балл (30%)

Потеря (баллов в минуту)

Балл на конец контеста

A

500

150

2 балла

260

B

1000

300

4 балла

520

С

1500

450

6 баллов

780

D

2000

600

8 баллов

1040

E

2500

750

10 баллов

1300 

4. И вот наступает момент, когда вы решили задачу и отсылаете ее на проверку. Во время контеста задача проверяется только на предварительном наборе тестов (еще мы их зовет претестами). Претесты не известны участникам, на них тоже можно получить разные вердикты (например, "Неправильный ответ на претесте 7") . Их особенность состоит в том, что их не очень много, и они не проверяют решение полностью. То есть тот факт, что решение прошло претесты говорит только о том, что оно вполне разумно. Думаю, количество претестов будет от 2 до 10. Претесты скорее всего не содержат максимальные тесты, некоторые случаи и т.п. Может даже оказаться, что ваше решение каким-то случайным образом прошло все претесты — но это скорее из области фантастики.

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

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

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

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

9. За успешный взлом положена награда в 100 баллов.

10. За неуспешый взлом придется расстаться с 50 баллами.

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

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

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

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

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

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

Все, finita la comedia, то есть game over.

Жду ваших мнений,
MikeMirzayanov

P.S. Я умышленно избегаю топкодеровского термина challenge: он плохо переводится на русский, к тому же у Топкодера могут быть амбиции на эксклюзивность челлендж-фазы и т.п. Прошу в обсуждениях использовать термин "взлом", спасибо за понимание.

 
 
 
 

 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +3 Проголосовать: не нравится
Непонятно мне вот что. Почему если моё решение по заблокированной задаче взломали, я не могу ломать других. Мне предоставят тест, на котором меня взломали?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    1. Надо подумать.
    2. Нет. Вероятно будет известен вердикт и статистика (вроде "Превышено ограничение времени", 33mb, 2000ms).
    •  
      17 месяцев назад, # ^ | Ответить
        Проголосовать: нравится -3 Проголосовать: не нравится
      Я написал сюда, чтобы узнать мнение главного правителя этого сайта.
      В последнем контесте на задачу E поступило несколько решений в духе "посчитаем в посторонней программе (Маткад или что они там используют?) и забьем в массив; затем за O(1) выведем ответ".
      Такие решения можно смотреть вот тут http://codeforces.ru/contest/27/status/E?order=BY_ARRIVED_ASC
      Это решения X_x ant.ermilov anonymous_msu
      Скажите, не противоречит ли такое безобразие правилам сайта и духу спортивной борьбы?
      •  
        17 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Вполне себе метод решения. На тимусе, скажем есть задача, которую никак без такого прекалка не решить. 
        Да и в реальных контестах бывает такое, что можно запустить перебор на час и потом получить готовое решение.
        •  
          11 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Мне кажется, вполне честно делать прекальк, даже специальные задачи на это бывают, но использовать для этого маткад, или maple, или ещё что-то как-то, мягко говоря, странно - это бывает в 10 раз проще, чем написать его самому.
      •  
        17 месяцев назад, # ^ | Ответить
          Проголосовать: нравится +1 Проголосовать: не нравится
        Нисколько не противоречит, ни разу не безобразие. Более того, условие задачи само провоцирует сделать прекальк. Как бы Вы сделали прекальк, скажем, в задаче сортировки массива? А здесь - всего 1000 возможных input'ов, почему бы не предподсчитать? Кроме того, с чего Вы взяли, что использовалась "внешняя" программа? Скорее всего, использовался тот же язык программирования, на котором был сделан сабмит. Ну или, в крайнем случае, использовался Google ;) 
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +17 Проголосовать: не нравится
Интересный вопрос - в таблице результатов можно будет видеть, у кого какая задача заблокирована? Это может оказаться стратегически важной информацией.

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

Зачем же так жестоко? Казалось бы, информация о том, что твоё решение взломано, сильно в дальнейших взломах не поможет. Или это правило нужно для того, чтобы заблокировать стратегию "отсабмитил фигню по сложной задаче, чтобы получить возможность взломов"?
Мне ещё кажется, может так получиться, что какой-нибудь слабый участник допускает в решении много багов, а сильный участник при взломе умышленно делает тест только против одного бага, чтобы иметь возможность взломать это же решение ещё один раз после ресабмита. Может, стоит ввести ограничение на взлом одной и той же задачи одного и того же человека (не более одного успешного раза)?

Вообще, интересно было бы поучаствовать в контесте по такой системе, должно получиться очень весело. Спасибо вам за огромную и важную работу, которую вы проделываете!
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    С пятым пунктом в самом деле надо подумать. По поводу "отсабмитил фигню, чтобы ломать других" - это не всегда просто. Должны пройти претесты. По поводу ограничений на взломы мы тоже думали - стоит посмотреть действительно ли они нужны.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Интересный вопрос - в таблице результатов можно будет видеть, у кого какая задача заблокирована? Это может оказаться стратегически важной информацией.
    Да :)
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +3 Проголосовать: не нравится
Когда ожидается контест по этой системе?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +3 Проголосовать: не нравится
    Сначала будет несколько альф с ограниченной регистрацией и по баян-задачам. Думаю, на предстоящей неделе можно ждать первую такую альфу.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится

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

  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, верно. Мне "взлом" нравиться больше. По-английски будет тоже хорошо, возможно, будет так: взломать = to hack. Можно по-русски будет говорить сленгом: "меня похачили", "я похачил чье-то решение".
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится

У меня несколько вопросов:

1) Сохранится ли деление на дивизионы? 

2) Если ответ на первый вопрос "Да", то в одной комнате будут участники одного и того же дивизиона или нет?

  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    1. Да, сохраниться.
    2. Вроде хорошая идея, почему нет. Плюс думаю, что распределение по комнатам должно коррелировать с рейтингом.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +12 Проголосовать: не нравится
Мне кажется, начальные стоимости задач обязательно должны быть разными. Иначе может получиться как в TCM: если 2 человека послали все задачи, но у первого после финального тестирования упала легкая, а у второго - сложная, то первый окажется ниже второго, так как легкие задачи все сдают вначале контеста и получают за них больше баллов, чем за сложные. Выходит, что легкие задачи ценнее сложных. А в ACM-ICPC с этим все нормально потому что в конце контеста ничего ни у кого не падает.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +6 Проголосовать: не нравится
    Согласен, очень быстрое решение легких задач будет существенно важнее решения сложных, так что, мне кажется, разбалловку нужно все-таки делать, если задачи отличаются по сложности. Кроме того, мне кажется, что разбежка 500 - 100 довольно большая. То есть получается, что можно получить всего лишь 20% от стоимости задачи. На топкодере 33%, и мне кажется, что можно эту планку и приподнять.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Звучит разумно. Разный стартовый балл, видимо, в самом деле нужен. Нижнюю планку, вероятно, тоже поднимем.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится -3 Проголосовать: не нравится
Когда был придума идея такого фомата соревнований?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Трудно сказать. Что-то похожее я вынашивал в голове несколько лет, а вот более менее четко сформировалась идея примерно год назад.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Будут ли также проводится контесты в том формате, в котором они проводятся сейчас. Или планируете полностью перейти на вышеописанный формат?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Сайт вообще панируется как веб 2,0, таким образом любой человек сможет делать контесты.
    Так что какие форматы будут нравиться этим людям, такие контесты и будут.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится +1 Проголосовать: не нравится
      Я имею в виду оффициальные контесты.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Большая часть официальных контестов со временем будет проходить по правилам Codeforces. Правда, вероятно они несколько эволюционируют.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +6 Проголосовать: не нравится
Как на топодере, нужно добавлять к финальному тестированию те тесты, которые удачно свалили чье-то решение раньше.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, это неплохо. Пока такого не будет, но, уверен, что можно ждать.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится -2 Проголосовать: не нравится
"Каждая строка должна заканчиваться символом перевода строки."
Это невозможно: последняя строка не может заканчиваться символом перевода строки :)
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Может и должна. Правильно составленный текстовый файл с тестом имеет последний символ '\n'. В hex-редакторе он выглядит как 0x0A. Я уже писал, почему.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится -5 Проголосовать: не нравится
      Думаю имелась ввиду рекурсия: в последней строке если стоит новая строка, то эта новая строка будет последней, тогда в ней должен стоять перенос строки, тогда последняя строка уже другая, а в ней опять же перенос строки и т.д.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Удобное определение такое: строка файла — это то, что кончается символом “конец строки”, то есть '\n'.
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится +3 Проголосовать: не нравится
          Неверное определение... А если в файле нет '\n'? Тогда строк вообще нет... тогда текста нет? Вот и потеряли информацию
          •  
            20 месяцев назад, # ^ | Ответить
              Проголосовать: нравится +2 Проголосовать: не нравится
            Говорят eJudge файлы тестов, в которых нет завершающего перевода строки, даже тестами не считает и не переваривает.
            Ставить перевод строки в конце файла, даже исходника, это что-то типа правила хорошего стиля. Никто же не заставляет вас делать разумные отступы в коде? Вот и перевод строки ставить тоже полезно.
            •  
              20 месяцев назад, # ^ | Ответить
                Проголосовать: нравится 0 Проголосовать: не нравится
              Блин.. какие вы серьёзные... Человек приколося, а вы...
            •  
              20 месяцев назад, # ^ | Ответить
                Проголосовать: нравится 0 Проголосовать: не нравится
              ejudge при проверке контеста сам расставляет последний перенос. Во всяком случае, в последних версиях это так
              •  
                20 месяцев назад, # ^ | Ответить
                  Проголосовать: нравится 0 Проголосовать: не нравится
                eJudge взломали!
                eJudge взломали!
                И нет сабмитов, нет контестов, все сидят в печали...

                :o)
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +1 Проголосовать: не нравится

Для распределения участников по комнатам наверное лучше всего подойдет "корзинный" метод жеребьевки. В футболе например он используется. Суть такова:

Например 1-20 человек по рейтингу идут в первую корзину. 21-40 во вторую и т.д.

Далее из каждой корзины случайно или как-нибудь еще выбирается по 1 человеку и они идут в первую комнату. Далее также выбираются и идут во вторую комнату. И так пока не кончатся люди. Таким образом средний рейтинг каждой комнаты будет сбалансирован.

 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +2 Проголосовать: не нравится
Кажется 2 часа на 5 задач + взломы достаточно мало. То есть, имхо, время нужно увеличить хотябы до 2.5 часа. Иначе вижу для себя (средний кодер) такой контест: сдаю две халявки и потом даже не пытаюсь решить остальные, пробую хакать чужие решения. В итоге никаких попыток додумать сложные для меня задачи.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Я давно думаю о том, что можно ранжировать участников с одинаковым количеством сданных задач по максимальному количеству тестов, которые у них будет по задаче, которую они сдавали неудачно. То есть оценивать успешно сданные задачи по ACM, а наиболее удачную из неуспешных - по IOI. Тогда будет резон сидеть и над сложной задачей до конца. Минус этого, конечно, в том, что составление тестов должно быть более сложным, чтобы ровнее ранжировать участников.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну для IOI системы в самом деле хорошие сбалансированные тесты делать занятие серьезное. В предлагаемом варианте это в самом деле будет необходимо.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Мне кажется у такого формата соревнований есть несколько недостатков.
1. Стоимость задач.
Как говорилось в комментариях выше, стоимости не могут быть одинаковыми, так как это будет заставлять всех трястись над сдачей легких задач и контест из будет превращаться из "как решить" в "как бы не ступить".
2. Навязанный участнику порядок решения задач.
Предположим что задачи имеют разную сложность, от меньшей к большей. Задачи падают в цене с одинаковой скоростью, а следовательно чтобы потерять наименьшее количество баллов нужно решать легкие в начале, а сложные в конце. Не смотря на то, что в принципе средний кодер так и поступает, есть исключения, возьмите хотя бы победителя последнего SRM-а jialin. Из трех последних SRM-ов, в которых он принял участие - два он выиграл, в одном стал третьим и во всех трех он решал 1000 и 500 и проваливал 250. Причем решал в порядке 1000->500->250. Даже если скорость изменения стоимости задачи будет как-то зависит от ее начальной стоимости это мало что изменит так как порядок решения задач так или иначе будет играть роль в получении балов.
3. Накрутки на взломах. 
Если взламывать код одного участника можно больше одного раза, значит в теории это можно делать и систематически. Не критично, но возможно.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    1. Согласен (ответил выше). Поправим.
    2. Кажется что порядок задач правилами ACM тоже диктуется, да и более менее естественно это решать их по усложнению. Кстати, в случае разных весов - это не совсем правда. Например, у меня осталось времени 30 минут. На 1 задачу хватит, а на две нет - может имеет смысл решать более сложную, чтобы получить больший балл.
    3. Для этого с участником вы должны быть в сговоре + в одной комнате + думаете это не вызовет подозрений? Не так то просто сделать естественный баг, потом его исправить сохранив естественность и так далее. Я считаю, что возможность читерить есть во всех форматах (не онсайт) - кто-то, конечно, это будет делать. Однако, большинство получает фан участвуя.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится -3 Проголосовать: не нравится
Вопрос: а что делать тем, кто готовиться к личным олимпиадам? Может иногда проводить личные олимпы?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +3 Проголосовать: не нравится
    Это и есть личные олимпиады :) Командных тут ещё не придумано.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится -3 Проголосовать: не нравится
    Если я правильно понял, что имелся в виду классический формат школьных олимпиад, то можно просто не взламывать чужие решения, а решать задачки. Мы же тут соревноваться будем, а так же учиться решать новые задачки (ну это для тех, кто увидит, что тут есть новые для него задачи; и потом попробует их дорешать).
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится

>термина challenge: он плохо переводится на русский

испытание

  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится

    "Я наиспытывал решений на 200 баллов"звучит хуже, чем "Я нахачил решений на 200 баллов".

    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      "я нахачил" или "меня похачили" не совсем красиво звучит, да и нет таких слов в русском языке.
      На мой взгляд лучше остановится на взломе.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится +2 Проголосовать: не нравится
        у меня вообще слово "хачить" вызывает устойчивую ассоциацию с лицами кавказской национальности...
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Мне вообще больше нравится не хачить, а хакать.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +6 Проголосовать: не нравится

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

  • Все всегда будут решать от легкой к сложной
  • Из-за этого получится, что стоимость легкой будет где-то 490, потом 460, потом 400, 340, 260. (примерные цифры без учета штрафов) . То есть самая сложная задача будет давать примерно в два раза меньше, чем легкая!
  • И так как у нас есть третий компонент - взломы, то сложные задачи даже пробовать решать будут 1-2 человека, а все остальные будут решать 2-3 задачи, а потом только хакать и хакать.

Выход из ситуации только один - взвешивать задачи. Мои идеи:

  1. Можно уравнять стоимость задач путем разных скоростей затухания. Пример - первая задача теряет 10 очков в минуту, вторая - 5, третья - 2, четвертая - 1.5, пятая - 1. Получим, что за каждую задачу можно получить примерно по 400 очков, если решать достаточно быстро и плавно (без учета штрафов). Можно подобрать константы так, чтобы за последнюю задачу получали больше баллов
  2. Можно оценивать стоимость задачи после контеста, исходя из того, сколько человек ее решило, к примеру ( Лучший вариант, так как как появляется смысл решать сложные задачи) или же определять временные константы подобным образом
  3. Дополнительно к этому можно повысить планку минимальных очков
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Ко всему сказанному могу предложить давать задачи не все сразу, а с некоторым, различным для каждой задачи, интервалом (если не ошибаюсь, так когда-то было на TTB). Тогда у тех, кто быстро отправит и закроет своё решение, будет время похачить чужие посылки.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Появилось несколько вопросов и предложений:
1)Как будет проверяться, что взлом-корректный? Будет ли сначала посылаться тест в тестирующую систему с определением правильного ответа, а затем в компьютер пользователя, или же просто сам хакер будет давать тот вариант ответа, который считает правильным? 
2)Если задача будет заблокирована, но во время контеста кто-то пошлет успешный взлом мне-она будет разблокирована в этом случае для дальнейших моих посылок? Написано лишь что я не смогу посылать взломы другим ребятам.
3)Кто будет составлять соревнования вот в таком формате? Так же, как и обычные контесты-все пользователи?
В случае если все: Если во время какого-то взлома будет обнаружен баг в авторском решении-будет ли награжден автор взлома?:)


Предложения:
1) Вот я о чем подумал: в обычных контестах мы только пишем 5 задач и в принципе на это времени у нас хватает. В этом соревновании нам еще по идее нужно взламывать чужие коды. Может, следовало бы изменить формат?
2) как я понял, разбиение на комнаты будет происходить. Но в любом случае, как бы мы не разбивали, комнаты получатся неравными по силе(в какой-то комнате есть человек с хорошим тервером, в каком-то-с геометрией, и тд и тп) Ну и вполне может случится так, что на одну из задач минимум в одной комнате не окажется взломов "на все случаи жизни". Может, следует после окончания контеста все взломы объединить и предложить их всем участникам?

  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    1) Вы участвовали в TopCoder'е? Если нет, то можете прочитать мою скромную статью и поучаствовать. А если по сути, то тест будет проверяться на корректность и правильный ответ даваться не хакером, а тестером, т.е. от хакера нужно будет лишь корректный тест.
    2) "В том случае, если у жертвы решение заблокировано — то после его взлома участник может только расстраиваться, потому что исправить ситуацию уже невозможно (epic fail)." Т.е. если твою заблокированную задачу взломали, то ты можешь о ней забыть.
    3) Не ошибается только тот, кто ничего не делает.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    А как по-вашему сейчас генерируются тесты? Пишется авторское решение. Вот именно это решение и будет использоваться для поиска ответа на предложенный тест.
    Насчет бага в авторском решении. На топкодере такое бывало, правда редко. В таких случаях исправляют авторское решение (как минимум, для дорешивания) и перетестируют все посылки. Если этот баг сильно повлиял на ход контеста, что в этой системе существенно, так как взламывать решения можно и посреди соревнования, то весь контест могут сделать нерейтинговым.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Спасибо большое за комментарии по моим вопросам! Собственно говоря, я так и сам думал, но на всякий случай решил спросить.

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

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

        Т.е. если человек написал плохое решение в комнате лузеров, оно же всё равно упадёт на нормальных (системных) тестах, а изменения общего рейтинга для него будут считаться относительно всех участников дивизиона, НЕ комнаты.
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Думаю имеется ввиду что в комнате лузеров больше шансов похакать. Но это уже наверное особенность идеи комнат, что является скорее фитчей, чем багом.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Что-же вы имели в виду?
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится +1 Проголосовать: не нравится
          Я имел в виду то, что написание задачи в комнате лузеров будет фактически не онлайн-проверкой, а ожиданием, как на том же яндексе, те узнать реально ли твое решение является правильным получится только после окончания контеста.
          А в нормальной комнате твои решения будут хакаться, и, если ты не будешь блокировать их(я лично врядли буду, для меня мало смысла-опыт небольшой, те задачи которые я решу решат и другие, к тому же есть шанс потерять балл)и тебя хакнет кто-нибудь, то это заставит тебя думать дальше. А в комнате лузеров никто хакнуть не догадается правильным тестом. В итоге: после окончания, уже на итоговой проверке у людей, писавших контест в сильной комнате, больше шансов на то что задача пройдет системные тесты. Я понимаю, отчасти это справедливо, но не стоит опускать еще глубже лузеров
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Как вариант: Пускай задача уже оценена там в 500, 1000, 2500, 3500, 5000 баллов. Будем считать что количество баллов которые не доберает участник будут определятся количеством АС-шных сабмитов поступивших до него по этой задаче. Пускай изначально задача стоит 500 баллов и для нее известен штраф 2 балла за попытку. Если ее уже сдало 33 человека то после сабмита я предварительно получаю 434 балла. По окончанию контеста, на систесте слетела она у 13 человек - соответственно на финише засчитало мне 460 баллов за нее. 
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Можно будет попробовать - благо делается это просто.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +8 Проголосовать: не нравится
Предположим, что я не умею решать задачу полностью, и знаю тест, на котором мои попытки решения не работают. Мне хочется завалить кого-нибудь этим тестом; для этого нужно пройти претесты. Значит, хочется знать ограничения на претесты — какое именно тупое решение нужно написать: ведь бывают разные неполные решения, не работающие в разных случаях.

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

Наверно, эта ситуация особенно знакома участникам индийских контестов, в которых авторы так не любят указывать ограничения: у простых задач есть много разных наборов ограничений, на которые нужны разные решения; какой же из них имели в виду?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ну вот в CodeJam например есть Small и Large inputs, при этом оба набора тестов являются полными, просто ограничения в них разные.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Про полноту Small input ничего не обещают. Бывает что он значительно менее полный, чем Large.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Тесты в small input покрывают все случаи, какие бывают при заданных ограничениях. Ну или по крайней мере авторы задач стараются сделать так, чтобы оно так было.

        Формализовать такое понятие как "полнота тестов" едва ли возможно, а уж обещать что-то на эту тему в правилах довольно бессмысленно.
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится +5 Проголосовать: не нравится
          Вот здесь автор одной из задач утверждает, что small input специально не содержал один случай, который легко подпадал под маленькие ограничения. Также, в одном раунде была задача про файловую систему и mkdir. Я там разбирал пути а потом снова собирал и складывал в сет. Но при сборке путей я забыл вставлять '/' между именами папок и в сет складыал просто длинные строки из букв. Как ни странно это прошло меленький тест, но упало на большом. Хотя они легко могли бы включить что-то типа "/a/aa" и "/aa/a" в маленький тест... Видимо это тоже было сделано специально.

          Про обещание, они могли бы указать, что тесты содержат "все" случаи попадающие под ограничения. Т.е. если неправильное решение проходит тест, то это случайность, и вина авторов задачи, что они не смогли его сломать.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится -4 Проголосовать: не нравится
По-моему, 40 баллов за успешный взлом мало. На данный момент минимальная цена решенной задачи равна 2.5 взломам (на ТС 1.5 для задачи 250). Т.е. надо больше взламывать, чтобы прибавка в баллах была более менее существенной.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ага, или увеличить количество участников в комнатах, например, до 40 или 50.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится +5 Проголосовать: не нравится
      Ага, а где ты найдешь время просмотреть 40 или 50 решений????
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +6 Проголосовать: не нравится
Тут есть еще одна уязвимость - можно для бота написать простое bruteforce решение в надежде что оно пройдет претесты, подсмотреть как другие решили и написать также для себя. Поймать это будет довольно сложно. 
Нужно все-таки делить на время кодирования и на время взлома после кодирования.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится

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

    С двумя аккаунтами правда можно

    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      под "ботом" я и имел ввиду второй аккаунт.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится -4 Проголосовать: не нравится
    да, бот-аккаунт не поймаешь... Тогда значит должны сразу выставляться нормальные тесты, чтобы брут не проходил.
    Нет, мне кажется, не имеет смысла такой вид контеста-тут мне кажется будет больше участвовать не ум, не умение программировать, а хитрость и умение подсматривать
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится

      Никто не будет ни хитрить ни подсматривать.
      Вы отталкиваетесь от изотупичного предположения, что можно будет пройти претесты халтурным решением, что, вероятно, неправда.
      Претесты скорее всего будут проверять почти всё, за исключением случаев типа
      1. Ответ не влазит в int
      2. Ответ надо выводить по модулю, и вы делаете что-то типа if( n == 0 ) cout << 1; вместо cout << 1 % p;
      3. Вы не рассматриваете граничный вниз случай

      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится +1 Проголосовать: не нравится
        > изотупичного
        взял на вооружение :o)
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Да, мне это слово тоже понравилось. :3
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +5 Проголосовать: не нравится
    Не так сложно как вы думаете. В ТопКодере тоже можно открыть задачу под другим аккаунтом, решить, потом открыть у себя и сдать - вы так делаете?
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Это да, но на топкодере задачу нужно решить в любом случае, а читерство дает только выигрыш в очках.
      В предложенной же системе все иначе. Если достаточно будет брутфорса для прохождения претеста, то можно будет подсмотреть само решение, и даже не просто идею, а еще и реализацию. 
      Понятное дело, большинство участников так делать не будет и, я думаю, верхушка таблицы будет состоять из людей, которые пишут честно, но все же читеры есть везде где только можно читерить.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Прежде взлома нужно заблочить задачу. А значит в брутфорсе нет смысла, даже если ты посмотришь чужой код.
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Имелось ввиду, что при наличии брутфорса и второго аккаунта можно будет подсмотреть чужой код.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Тут есть важная разница - разные задачи в див1 и див2. Собственно, я думаю на топкодере для того дивизионы и сделаны. Хочешь читерить - выводи каждый раз новый аккаунт в див1
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится

У меня два небольших вопроса:

1) Зачем вообще блокировать свою задачу? Только для того, чтобы иметь возможность взламывать чужие решения? И можно ли вообще не блокировать успешно решенную задачу (прошедшую претесты)?

2) Правильно ли я понимаю, что контест не будет разделяться на фазы, как на топкодере? (То есть, фазы решения задач и взлома по сути будут проходить одновременно: от начала до конца контеста)

  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +5 Проголосовать: не нравится
    1)
    - Можно не блокировать.
    - Блокировать, чтобы просматривать решения. Скорее всего это нужно для того, чтобы нельзя было посмотреть чужие решения, понять свой какой-то недочёт и резко-резко исправить ситуацию. Исправить то уже нельзя - решение заблокировано.

    2) Да, видимо всего одна фаза.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +5 Проголосовать: не нравится
Хотелось бы спросить. А взламывать можно только ту задачу которую сам заблокировал (то есть А заблокировал, только чужие А и можно ломать)?
Иначе можно заблокировать, посмотреть код сложной задачи у сильных участников (переписать поменяв что-то по своему, чтобы уж совсем 1в1 не был код) ну и соответственно решить
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +5 Проголосовать: не нравится
    Какие задачи заблокировал - те и взламываешь
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      А ну тогда отлично.
      Те кто решат мало задач вряд ли смогут взломать легкие задачи у сильных участников.
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится +10 Проголосовать: не нравится
        Да вот тут конечно тоже есть косяк. Надо либо позволять блокировать задачу без ее сабмита, либо делать дополнительное время для челленджа (где возможно коэффициенты за удачные / неудачные челленджи будут другими), когда закончится фаза кодинга.
        Просто не очень честно то, что если человек 1 сдал какую-то задачу, остальные не могут его челленджить. Как-то это странно)
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Тут уж был разговор по поводу того что некоторые не особо честные люди могут создать бота, который сразу заблокирует задачки какой-нибудь посылкой на удачу, которая пройдет претесты, а потом посмотрят чужие решения и сделают выводы. А теперь прикинь, если дать возможность сразу заблокировать задачу.
          А то что если 1 человек сдал а остальные не могут ломать его-это более чем честно. Если не сумели написать решение-то почему это вы пытаетесь ломать чужое? А если тот один написал неправильное решение-то завалится на окончательных тестах

          •  
            20 месяцев назад, # ^ | Ответить
              Проголосовать: нравится 0 Проголосовать: не нравится
            "А то что если 1 человек сдал а остальные не могут ломать его-это более чем честно. Если не сумели написать решение-то почему это вы пытаетесь ломать чужое?"
            потому что написание кода и взлом - два принципиально разных способа зарабатывать баллы и они, на мой взгляд, никак не должны зависеть друг от друга, поскольку здесь речь идет о двух различных навыках - писать код и искать ошибки + подбирать тесты.
            "А теперь прикинь, если дать возможность сразу заблокировать задачу."
            Вот возможно именно поэтому надо сделать в 2 части - во второй части после окончания кодинга можно будет взламывать все решения.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Насколько я понимаю, текущий вариант правил не покрывает 2 момента.
1) В зависимости от задачи участникам может быть выгодно или наоборот не выгодно чтобы его решение челленджили. Выгодно - если написал не совсем понятное решение и взлом позволяет "тестировать" до окончания задачи. Не выгодно - ты написал все что мог и уверен что лучше уже не придумаешь + лелеешь надежду на то, что твое решение пройдет все авторские тесты. Другими словами ты надеешься на удачу, но сильно сомневаешься что нет такого теста который мог бы завалить твое решение. При этом естественно, что ты не хочешь дарить никому баллы. Получается, мы имеем 2 ситуации, которые могли бы довольно сильно повлиять на тактику во время контеста. Можно при сабмите сделать галочку что-то типа "пожалуйста хачьте мое решение", которая бы приносила тем кто челленджит больше баллов, чем за челлендж задачи без этой галочки. Но это все вносит некоторую специфику и наверно такие вещи вносить все-таки не нужно.
2) Наверняка найдутся люди которые будут стараться сабмитить в самом конце чтобы их решение ни дай бог не почелленджили. Может сделать после окончания фазы кодинга еще минут 5 на челлендж)?
3) Возможно стоит сделать попытки по взломам тоже с разными весами.Веса видимо должны зависеть либо напрямую от стоимости задачи, либо являться некоторыми параметрами, выставляемыми авторами до начала контеста.
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +6 Проголосовать: не нравится
    2. Ну и в путь - они меньше баллов по этой задаче получат
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Хотел бы обратить внимание на то, что исходники здесь видимо можно будет копировать, а значит поиск тестов для взлома можно автоматизировать. Это не хорошо. Можно показывать исходник картинкой с каким-то шумом и деформацией, чтобы затруднить работу всяким OCR утилитам, но что-то это мне не очень нравится. На ТК эта проблема тоже есть, но там "фаза взлома" довольно скоротечная и поэтому особо нет смысла заморачиваться перегоном картинки в текст. Хотелось бы услышать мнение авторов нового формата по этому поводу...
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    На TC, насколько мне известно, очень очень много людей распознают исходники.
    Я слышал не редко от людей, что у них уже автоматизированный процесс перегоняет решение в FineReader, а затем запускает стресс-тест против своего решения :о)
    Первую половину я тоже как-то давно писал, а вот до стресс-теста руки не доходили.
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится +15 Проголосовать: не нравится
      За это в свое время забанили HardCoder'а (потом в честь какого-то праздника бан сняли, но результаты видны)
      Так что те, кто так делают - большие редиски, и по хорошему с ними надо провести воспитательную беседу и сдать, если не образумятся
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится +5 Проголосовать: не нравится
Как-то все очень сложно придумали (много правил, много ньюансов). Ну да, ладно, главное, чтобы фан был :)

Ну и мои 5 копеек:
1) Не очень нравится, что фазы решения и взлома полностью совмещены. Мозги для них как бы совсем по-разному работают (во всяком случае у меня :). Опять же, кто слабо решает, будет преимущественно искать удачи на взломах, т.е. решать так и не научится. Предложение: фаза взлома начинается через 1 час после начала контеста (т.е. в течение 1-го часа ни просматривать, ни взламывать чужие решения нельзя!)

2) А теперь по поводу самого взлома: чтобы сделать его более интересным, надо сделать привязку количества баллов за успешный взлом к разнице рейтингов участников. То есть, чтобы выгоднее было взламывать решения топовых участников и тех, кто выше тебя по рейтингу.
Реализовать можно домножением 100 баллов на коэффициент типа:
С = 1 + (Rvictim - Rmy) / 1000
То есть,. если участник с рейтингом 1500 (как у меня) взломает решение участника с рейтингом 2000, то я получу 150 баллов. Если же наоборот, то он получит только 50 баллов. При равенстве рейтингов будет 100.
 
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +7 Проголосовать: не нравится
    Второе предложение нравится, только над формулой ещё подумать надо, а то, если участник с рейтингом 2000+ взламывает участника с рейтингом 1000-, его ещё и наказывать за взлом надо что ли?)
    •  
      20 месяцев назад, # ^ | Ответить
        Проголосовать: нравится +1 Проголосовать: не нравится
      Такие участники просто не окажутся в одной комнате, так как в разных дивизионах.

      Но в принципе над формулой действительно надо подумать. Как вариант коэффициент ограничить снизу и сверху.

      Обе идеи понравились)
      •  
        20 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Пока что действительно не окажутся. Но топовые участники через какое-то время наберут 2500+. =)
        •  
          20 месяцев назад, # ^ | Ответить
            Проголосовать: нравится -1 Проголосовать: не нравится
          Не думаю, что рейтинг 2500 так легко будет набрать - посмотрите на кривые рейтинга топовых участников, они уже сейчас достаточно пологие.

          Я исходил из предположения, что в одном дивизионе разброс рейтинга больше 1000 не будет, забыв, что в 1-м дивизионе может быть 1500. Так что формулу надо поменять на такую:
          С = 1 + (Rvictim - Rmy) / 1500.
          Плюс сделать минимальное кол-во баллов за взлом, например, 20.

          Идея была: чтобы участники взламывали решения примерно равных и более сильных. Ну и чтобы хай-левел участникам не выгодно было ньюбов хачить! :)))
          •  
            20 месяцев назад, # ^ | Ответить
              Проголосовать: нравится 0 Проголосовать: не нравится
            Как показала практика первого пробника, совершенно неважно из какого ты дивизиона. Хачили всех.
            Кстати на простых задачах ошибка профов ничуть не менее вероятна чем нубов. Просто профи, пока нуб думает над легкой, пытается ее максимально быстро послать и не исключено то что забудет
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится -1 Проголосовать: не нравится
Не знаю, согласятся со мной люди или нет, но мне кажется, что в каждом контесте должна быть не очень сложная задача, но такая, чтобы могла хачиться всеми участниками.
Например, есть задачи, очень простые, но практически целиком и полностью решающиеся на частные случаи. Например, решение уравнения ax^3+bx^2+cx+d=0, где есть частные случаи все нули, 1 ноль в одном из слагаемых-4 случая, 2 нуля-6 случаев, 3-4, 4-1. Правда некоторые не влияют на ответ, но все равно будет достаточно много различных случаев. Понимаю, что это будет быдлокод)))). Но все равно, придется быть внимательным к написанию и неопытный программист, который сообразит все подводные камни, тоже может с успехом похачить эту задачку, то есть как бы должен даваться шанс новичкам, чтобы думали
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Кстати вот еще предложение:давать четверть задачи(или еще как-нибудь) если задача прошла начальные тесты.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
CFBR 19 будет по ACM правилам? И сколько ещё планируется контестов на ACM системе до CF?
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
А смысл "Мин. балл (30%)", если он по каждой задаче меньше чем "Балл на конец контеста"?
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
И кстати вот ещё вопрос: штраф начисляется на задачу или на аккаунт?
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится

На мыло пришло письмо

...оставил комментарий на ваше сообщение. Перейдите по ссылке http://codeforces.com/comments/466#comment-6607 для просмотра.

Надобы, наверное, как-то всё-таки разделить отсылку на почту ссылок codeforces.com  и codeforces.ru (для русско- и англоязычных пользователей).

  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да, я это описывал))
    Мне ещё с www.codeforces.ru приходило. И тоже нужно было логиниться отдельно.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
А может ещё за взлом разных задач давать разные баллы? Тут, в отличии от TC, задачи уже пройдут некоторые тесты, и что попало участникам сдать не получится.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
А можно будет перевламовать вломанное решение?
  •  
    20 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +12 Проголосовать: не нравится
    Если оно будет ресабмичено — наверное, да.
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
А вердикт при взломе "Некорректный тест" даёт штраф?
 
20 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Каков тайм-лимит на генерилку тестов? :)
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Are you going to introduce these rules in beta round 19 or make another unrated round for greater number of people?
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +3 Проголосовать: не нравится
    The second. It will be Codeforces Alpha Round #21 (Codeforces format)
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      will Codeforces Alpha Round #21 be rated?
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится +3 Проголосовать: не нравится
      one question, If one's solution is hacked(but not by us), can we still see the code but we are not given permission to hack or we can't see the code and there is no permission to hack?
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Probably you may not see someone's solution if it's already hacked.
        It'll be so until that someone submit a new solution (if the problem wasn't closed; if closed - NO WAI), that again passes pretests And tests, that used to hack this person's solution before.
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Ох... сложные правила стали О_О надо разбираться в этих взломах, а то ничего не понял ~__~
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Прочитал правила: всё ясно, всё понятно.
Вот вопросик, а что, если сделать так: твоё решение пытались взломать, но ничего не получилось у ломавшего, и за каждую неудачную попытку взлома твоего решения тебе причисляются, например, 25 поинтов?
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Это чтобы простимулировать обфускацию кода?
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +6 Проголосовать: не нравится
    = мы получаем возможность взять любого участника и поднять его очень высоко.
    Допустим, я сдал четыре задачи, я их заблокировал, но мне скучно. Я беру, и все поинты сливаю на то, чтобы поднять какого-то серого чувака в комнате. Так как я теряю 50, а он получает 25, он получит половину моих поинтов. Учитывая, что что-то он все-таки сдаст, ему будет очень клевенький дамп вверх :о)
    А если психов как я будет два (а лучше три :о)), то можно чувака, который ничего не сдал, вывести на первое место.

    Я думаю, если бы такое правило реально ввели, были бы соревнования по вытаскиванию серых чуваков в топ :о) Чья комната лучше откормит серого чувака :о)
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      "то можно чувака, который ничего не сдал"
      читать "который сдал самую простую задачу, об которую мы собственно все и будем его поднимать"
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Получается соревнование "чью гетто круче" ))). Цель - всей комнате посабмитить задачи так чтобы они прошли все претесты, выбрать самого толстого и разогнать его до небес))
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я правильно понял, что согласно текущему варианту правил человек не отсабмитивший задачу не получает возможность делать по ней взломы? То есть если я 1 отсабмитил задачу в комнате (что вполне возможно), то меня никто не взломает. Это нормально?
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
I think that these rules seem interesting, we should see in practice how they works :)
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
I think it would be good if there were an additionally, say, 20 minutes of hacking after the first two hours have passed. No further submissions could be made during this time, only hacking. But then again, perhaps the two hours are enough. I can't wait to try this. :)
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится +16 Проголосовать: не нравится
This contest style looks pretty cool. I don't think extra time is necessary for hacking after the contest. In Division I contests for me at least, I usually do 3 problems or so, and then don't know how to do the others :P So I'll have time to hack :D
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится -3 Проголосовать: не нравится
I don't think hacking is an effective way to get scores with this rule. (It decreases the time to solve problems, and we can't resubmit if we try to hack.) I think it will work fine if there is no penalty for unsuccessful hacking.
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +1 Проголосовать: не нравится
    But if there is no penalty for unsuccessful hacking, then people might start making hacks recklessly without analyzing the solutions.
    •  
      18 месяцев назад, # ^ | Ответить
        Проголосовать: нравится +4 Проголосовать: не нравится
      Would that really be a bad thing?

       If BF/load are issues just add an X seconds delay between hacking attempts.

      I don't really think it would be useful to try "hacking" at all. In TC challenges were already too much of an unusable gimmick for most div1 coders.  But if besides of the risk of losing points, you also add that you cannot resubmit any more and that you have to use time during coding phase it is too much.
      •  
        18 месяцев назад, # ^ | Ответить
          Проголосовать: нравится -1 Проголосовать: не нравится
        I really prefer it in the normal ICPC format than adding the hack stuff. As you said, challenging in TopCoder is useless for me in div1.
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится +1 Проголосовать: не нравится
    Sometimes too few time left and you know that it's not enough for solving one more problem. It'f perfect moment to start hacking).
    One more argument for making penalty for unsuccessful hacking - it should stop hacking flood and brute force hacking :-D
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится +1 Проголосовать: не нравится
Why revealing that a solution has been hacked at all?

Just give the outcome result to the hacker and add or subtract the points, but don't reveal anything else.

That has been proposed in TopCoder forums long ago but I can't find it anymore. 

I think that this it is even better opportunity to use these rules considering that hacking and coding phases are not disjoint here.

I find it somewhat unfair to you get the info that your solution is flawed and you get to resubmit it, but I don't get it just because someone hacked yours. This rule would prevent this.

Also, you can't submit something that doesn't work at all so that the whole room would feast on it. The submission must pass this basic test set so I wouldn't mind if two people find the same bug and both get points for it.

Please consider the idea. I really think it would fit here.

Luka
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    With current rules there is an important trade-off: you either try to hack solutions (but then the points for problems that you haven't submitted yet are decreasing) or solve other problems (but then you risk missing a lot of points for hacking). With what you suggest the second problem becomes much less critical, if not disappears at all.
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Sure.

      I just think that for me as a contestant it would be much better if I didn't have to depend on other peoples strategies and luck. I can devote as much time as I like to coding and spend the rest hacking.

      Everybody choose their own strategies but it doesn't effect others. This way luck factor is greatly reduced to the room assignment. The order I check others solution doesn't matter and the time I start checking others solution doesn't matter. Only my hacking skill and the strategy I choose matters.

      While I understand your point, I disagree that having this trade-off around is valuable. It might be fun in the beginning, but I think it would be chaotic - the rush to be the first to hack would be annoying and in the end I think that luck would play a significant role to the success of chosen strategy. 

      Keeping track of the scoreboard all the time would be pretty distracting for problem solving that is still (I think) the most important part of algorithmic contests.

      Well, maybe I'm wrong :)
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Have you participated in Alpha Round #20? It was very fun! :)
        IMHO, with your system the whole idea of combining the coding and the hacking phases together almost doesn't make sense. I agree that the importance of hacking is now emphasized, but well, that's the feature of the format. By the way, in alpha round #20 ivan.popelyshev started to hack solutions only after he submitted all 3 problems himself, and still made it to the 1st place.

        As for the tracking of the scoreboard — I'm sure there will be improvements of the interface that will make this easier.
  •  
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    I like the idea that contestant with hacked solution have no info about it and more than one room contestants could gain points for hacking such solution.
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится +1 Проголосовать: не нравится
What happens if I am 'confident' that I can not solve a problem in the given time. Can I lock that problem without submitting a solution and hack others solution for that problem?

I liked the idea of silent and multiple hacking by Kalinov. It makes sense.
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    No, you can't lock a problem without submiting a solution. You can lock the problem and hack other solutions only if you solution passed all pretests.
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
I have a few questions about the new format:

1. The way I understand it, we cannot hack at problems we haven't submitted and locked ourselves. But we might have formulated usable test cases, even if we failed to submit. Would it be possible to lock a problem we haven't submitted - in effect we forfeit our chance to submit the problem any more in the contest - and then challenge?

2. In TopCoder, the text of solution code is unobtainable by copy-paste or any other way. This is essential to prevent automated challenges. Is there a similar restriction in the new format?

On the whole, this new format looks promising. Looking forward to the first rated match.
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    2. In TopCoder, the text of solution code is unobtainable by copy-paste or any other way. This is essential to prevent automated challenges. Is there a similar restriction in the new format?
    No, you can't copy-paste other's solution.
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      You can copy-paste other solution. It was proved by me.
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Here by Russian http://codeforces.ru/blog/entry/468#comment-6868
        •  
          19 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          It's a bug, the question was about rules.
          •  
            19 месяцев назад, # ^ | Ответить
              Проголосовать: нравится 0 Проголосовать: не нравится
            It's look like that authors tried to protect code by using flash.
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Few more questions about the new format:

1- Rules talk about obfuscation, but is there any restriction similar to TopCoder's unused code rule? I have many defines for input reading in my Codeforces source template. They aren't meant to make it hard to read the code, but most of them are not used in a single problem, so there is a lot of unused code. For the CodeJam I added a comment at the beginning explaining the source file structure and where to find the problem solution related code.

An example of the defines are
#define InInt(N) int N; scanf("%d", &N)
#define InVectorInt(X, N) vector<int> X(N); for ( int i = 0; i < N; ++i ) scanf("%d", &X[i])

The input section of the main method may look something like
...
InInt1(N);
InVectorInt(points, N);
...

2- It has been stated that you can't hack without successfully passing the pretests, but how about making a solution that one knows passes many cases but not all. Submitting it, and adding small hacks to it until it passes the pretest and locking it. Then I start to hack others, what happens if my code gets hacked? Can I still hack others? Is it considered fair to have such an approach to be able to get hack points even if I can't solve the real problem? Rules says that worst cases aren't tested by the pretests, so maybe I can make a brute force, or maybe an O(N^3) solution when N <= 500, knowing that worst case won't pass but maybe pretests are small enough. If this isn't considered ethical enough (rule #14) it would be hard to determine if it isn't an honest mistake, so maybe allowing to lock a problem without passing pretests is the only way to really disallow this.
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    what happens if my code gets hacked? Can I still hack others?
    You can still hack others
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится

првильно ли я понимаю :

я могу взламывать только те задачи, которые я на етот момент здал и заблокировал ?

и если у меня задачу взломали, то возможнось взлома терятся или нет ?

  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится

    >я могу взламывать только те задачи, которые я на етот момент здал и заблокировал ?

    да

    >и если у меня задачу взломали, то возможнось взлома терятся или нет ?

    нет, не теряется


  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    1) я могу взламывать только те задачи, которые я на етот момент здал и заблокировал ?
    Да

    2) и если у меня задачу взломали, то возможнось взлома терятся или нет ?
    Нет
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится +3 Проголосовать: не нравится
There seems to be a week point in the in-time-of-contest hacking. If someone with a fake ID (or lets say two friends) are in the same room, he may submit for N times (for an arbitrarily large amount of N) using his fake ID, and hack his solution with th original ID. This way, he gets 100*N points for free (which worths a lot for an arbitrarily large amount of N) :D
P.S. I can see that this way you will be mention his cheating and will disqualify him, but it's just a matter of canceling the potential of cheating as much as you can. Also, note that you won't even think of cheating if the process is done for a small value of N.

Solution: Don't let someone hack another ones solution for more than once (or twice)
  •  
    17 месяцев назад, # ^ | Ответить
      Проголосовать: нравится -3 Проголосовать: не нравится
    Sorry for writing in Persian:
    بابا اینها عقلشون به این جاها نمی رسه
    فقط ما ایرانیها این چیزها به ذهنمون می رسه
  •  
    17 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    راضیم ازت، عالی بود!
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Есть предложение удешевить штраф за взлом. Цель - чтобы люди учились и не боялись взламывать другие решения. Естественно, это только во втором дивизионе, т.к. в первом люди будут просто взламывать всю комнату на группе тестов и это почти всегда будет прибыльно. Зато во втором дивизионе будет очень выгодно много взламывать и люди будут чаще пользоваться этой возможностью
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    А чем это невыгодно во втором дивизионе?
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Непонятен вопрос. Я как раз и говорю, что надо во втором дивизионе это применять. А в первом нельзя, потому что потеряется аккуратность и точность взломов. Раньше ты должен был аккуратно проверять каждое решение, а теперь сможешь составить коварный тест и прогнать его по всей комнате
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я имею в виду, что участники второго дивизиона точно так же смогут придумать коварный тест, и прибыли от прогона его по всей комнате скорее всего будет не меньше. Такой подход только расслабляет, многие начнут валить решения "от лампочки", так как серьезного штрафа за это нет(а вероятность успешного взлома сохраняется). В результате, теряется точечность в выборе решний для взлома. К тому же, сегодняшние втородивизионники завтра могут перейти в первый див(и наоборот), а там уже совершенно иные правила.
        •  
          19 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Тогда можно попробовать придумать что-нибудь другое, но из той же серии. Например первый взлом - бесплатный. Или постепенный рост штрафа за неверный взлом
          •  
            19 месяцев назад, # ^ | Ответить
              Проголосовать: нравится 0 Проголосовать: не нравится
            Идея постепенного роста штрафа лично мне очень понравилась.
          •  
            19 месяцев назад, # ^ | Ответить
              Проголосовать: нравится 0 Проголосовать: не нравится
            По-моему как раз постепенный пост штрафа еще больше отобьет желание взламывать.

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

            А сейчас штраф достаточно небольшой, одинаковый для всех и понятный. И бонус за удачный взлом точно такой же ясный и понятный.
            •  
              19 месяцев назад, # ^ | Ответить
                Проголосовать: нравится 0 Проголосовать: не нравится
              Странная логика. Лучше не ошибаться, потому что потом ошибаться дороже. Какой же смысл стараться поменьше платить за ошибку, если боишься пытаться? Или если уж ошибаться, то как нибудь по-красивому?

              А если каждому сделать первый взлом бесплатный, то по-моему контесту хуже не будет, а каждый человек будет делать 1 взлом за контест. Так, постепенно, все научатся взламывать.
              •  
                19 месяцев назад, # ^ | Ответить
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Очень хочется услышать мнение администрации сайта по этому вопросу. Спасибо
                •  
                  19 месяцев назад, # ^ | Ответить
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  В настоящий момент администрация считает, что фиксированный штраф в 50 баллов - оптимальный вариант
      •  
        19 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Думаю, что правила должны быть одни для всех.
        Никто же не запрещает взламывать?

        А инициатива она всегда наказуема.
        •  
          19 месяцев назад, # ^ | Ответить
            Проголосовать: нравится 0 Проголосовать: не нравится
          Никто же не запрещает взламывать?
          И никто не заставляет.
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
А почему не сделать фазы взлома и решений разными?
Час 30 (2 часа) решаем задачи, потом минут 30 на взломы, причем почему бы не иметь возможность ломать решение задачи, которую ты сам не решил?
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Думаю в таком случае пропадёт много фана и динамичности.
    А так уже целые тактики есть что и как делать. :-)
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ну вот казалось бы это и есть TC формат. А тут фишка в том, что поломанные решения можно исправлять, а так же в том, что надо принимать стратегические решения - челленджить или решать
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Будет ли разделение на дивизионы в новом формате соревнований?

Не очень понятно, почему в beta-раундах участникам из второго дивизиона доступны все контесты, а из первого - только для первого? Может быть, второму дивизиону стоит ограничить доступ к контестам первого дивизиона и поднять там уровень задач?
  •  
    19 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Разделение должно быть. :)

    Усложнить? о_О Последние пять рейтинговых контестов для обоих дивизионов в среднем только три участника решали все задачи. (Да, я посчитал.)
    •  
      19 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну такая статистика и вправду не свидетельствует в пользу изменения сложности задач.
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Айда chat on! :)
 
19 месяцев назад, # | Ответить
  Проголосовать: нравится +1 Проголосовать: не нравится
Хм. С одной стороны у contest 24 не написано Codeforces format. С другой - при регистрации на контест нас отправляют на эту страницу. В связи с чем возникает вопрос:

По каким правилам пройдет contest 24?
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится +4 Проголосовать: не нравится
Скорей бы ещё один такой контест=).. Хоть и не рейтинговый.. хоть даже по свечкам..
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
А есть ли в планах проводить матчи не только в 19:00 под Москве? Не могу, правда, сказать, что представляю большое количество людей (только двоих ;-). У нас тут время GMT+0, и московские семь часов вечера нам приходятся аккурат в четыре часа вечера, конец рабочего дня, даже не середина. Вобщем, было бы здорово, если б иногда были матчи в иное время, хотя бы по топкодеровской сетке со всмещением в день-два.

Спасибо.
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
round #26 is rated or not??
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится -4 Проголосовать: не нравится
Логично сделать возможность блокировки неотправленной задачи. А то те, кто сделали полурешение, кот. проходит претесты, получают достаточно большое преимущество (возможность взлома) по сравнению с теми, кто не захотел писать полурешение.
  •  
    18 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Сразу вижу проблему, когда все заблокировали задачу не решив. Тут как раз и фишка в том, чтобы валить тех, кто написал полурешение. А если никто ничего не написал, получается фигня какая-то
    •  
      18 месяцев назад, # ^ | Ответить
        Проголосовать: нравится -4 Проголосовать: не нравится
      т.е. вы хотите, чтобы остался стимул писать полурешения? Я в таком стимуле не вижу ничего хорошего. Решение нужно писать либо полное либо вообще не писать.
      •  
        18 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        А я не вижу в этом стимула писать полурешения. Потому что из-за наличия претестов это полурешение будет достаточно сложным, а не просто пару if'ов, да и наверняка не будешь знать, пройдет ли оно эти самые претесты. А так рисковать и тратить время ради одного-двух в лучшем случае успешных взломов глупо. Так что те кто сделают полурешение теряют достаточно большое преимущество в виде времени)
      •  
        18 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Я лишь хотел сказать, что не вижу смысла блокировать задачу не написав ничего по ней. В этом случае все будут блокировать сложные задачи, чтобы пытаться найти ошибку у других. Тогда будет сильно меньше отправок и контест будет менее живой.

        Кроме того, это облегчит такую схему читерства. Я под одним аккаунтом блокирую свое решение и смотрю решение топового участника. После чего я отправляю в точности такое же решение с другого аккаунта. А с данным ограничением мне придется знать, как именно пройти претесты. А судя по правилам претесты проверяют правильность решения и не проверяют лишь крайние и граничные случаи, т.е. видеть верное решение уже не так сильно поможет при сдачи задачи.
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Снимаются ли баллы за некорректный тест для взлома?
  •  
    18 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да
  •  
    18 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Наверное
  •  
    18 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Уточню. Баллы снимаются если решение корректно отработало.

    Если сам тест не корректен (ну например не укладываться в ограничения или в условии обещано какое-то свойство а оно не выполняется) то вроде нет.
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Думаю неплохо было бы сделать таблицу изменения рейтинга по комнатам, ну что-то вроде топкодеровской, а оттуда так же иметь возможность сразу перейти к просмотру кода участника и соответственно тексту задачи.
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
I think it will be great to creat a raiting table for each room, something like on TopCoder, very comfortable. And from this table to have possibility to open users source codes for each task and also problem's text.
hm?
 
18 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
I think it will be great to creat a raiting table for each room, something like on TopCoder, very comfortable. And from this table to have possibility to open users source codes for each task and also problem's text.
hm?
 
17 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Hey everyone I'm new to this website and I have a question about submitting my codes. I tried submitting a java type file and i kept getting an error. any tips on how one should go about submitting your code for a contest.
  •  
    17 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    What error?
    Here's a sample Java solution for problem A from beta round #1
  •  
    17 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    You can check other solutions. Some steps:
    1. Proceed to the "Contests" page. (link)
    2. Enter one of the previous contests. (example)
    3. Proceed to the "status" page (status)
    4. Find some accepted solutions in Java
    5. Look at the code clicking the solution ID link.

    P.S. It seems to be that you just print the answers for the sample tests. Instead you should read the input data from the standard input stream.
    •  
      17 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Thanks. Reading in the data was my problem. Appreciate your help.
 
17 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Is it no more possible for DIV1 contestants to take part in contest only for DIV2 and be out of competition?
 
17 месяцев назад, # | Ответить
  Проголосовать: нравится +12 Проголосовать: не нравится
while I see the benefits to this approach, I never liked the whole hacking thing.  TopCoder does it and has been doing it for a long time, so fine, let it be.  I did like the original CodeForces judging way, such as used in the first 5 contests and onwards.  Having said that, I am not entirely opposed to the new way.  I haven't tried the new rules yet, so it will be interesting to see how it feels.
 
17 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Уточните, пожалуйста.
Если посылается задача, которая неправильно компилируется, снимаются ли за такую попытку баллы как за штрафную?
 
17 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Вопрос банальный, но все же:
Я зарегистрирован на 28 раунд, но не смогу принять в нем участие. Это никак не отразиться на рейтинге?
  •  
    17 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Это никак не отразится на рейтинге
 
17 месяцев назад, # | Ответить
  Проголосовать: нравится +3 Проголосовать: не нравится
Can I do a request? Plz Plz don't forget the ICPC formet. Have some contests on that format also plz.
 
16 месяцев назад, # | Ответить
  Проголосовать: нравится -3 Проголосовать: не нравится

Есть вопрос, даже скорее пожелаение...

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

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

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

  •  
    16 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Загруженносьт сервера... не?
  •  
    16 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится

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

    Я думаю, просто до реализации этой фичи ещё не дошли, - и так вон пока виртуальные пользователи только-только реализованы.

    •  
      16 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      А что за виртуальные пользователи?
      •  
        16 месяцев назад, # ^ | Ответить
          Проголосовать: нравится 0 Проголосовать: не нравится
        Ну в смысле виртуальные участники контеста :)
 
16 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Can you resubmit your code after locking your code or your code be hacked by others?
  •  
    16 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    If you lock your code you can't resabmit it. In any other situation you can do it, but the score on this problem wiil be less, becose of time between submitions and 50-points penalty.
 
16 месяцев назад, # | Ответить
  Проголосовать: нравится +3 Проголосовать: не нравится

What about the following idea: after the finish of each contest, problemsetters upload all tests to all their problems as an archive (to some site). It's not difficult for authors to take an archive from the system ('Polygon') where the problems are created.

I don't know when the feature of viewing test data will be available on Codeforces, so I suppose this is the best solution. It's really not a good idea to ask tests in comments on the site, IMHO.

 
16 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
On the 32nd round I noticed div1 contestants couldn't hack others' solutions. Is it going to be like that in div2 only?
 
16 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Will out of competition user's rating change after the contest??
 
16 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
I think codeforces can add a function that contestants can view others' codes after the contests in his/her room.
During the contest, I may not find a program's bug. When it failed system tests, I want to see it again ..
 
16 месяцев назад, # | Ответить
  Проголосовать: нравится +3 Проголосовать: не нравится
I was looking for these rules on the site without much luck - the link is provided in the email, can it be visible somewhere on the Home or Contest pages? I see now that the link can be found under 'Recent Actions' but, at least for me, it is not really a place I would go to when looking for the rules.
 
11 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
can u please allot div 2 members to seperate rooms and div 1 members to seperate rooms ?? like they do in topcoder ...
  •  
    11 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    In the case div 1 and div 2 are together - the div 2 contestants' wrong solutions will be hacked earlier and they'll get an opportunity to resubmit a correct solution.
 
11 месяцев назад, # | Ответить
  Проголосовать: нравится +1 Проголосовать: не нравится
Внесу ещё такое небольшое предложение по интерфейсу. Только во время последнего контеста заметил, что текущие баллы за каждую задачу справа отображаются без учёта ресабмитов. А если бы они были с ними - с пересчётом для конкретного участника - было бы лучше.
 
11 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
И еще одно предложение: во время финального тестирования как-то трудно визуально различать случаи "Финальное тестирование не пройдено" и "Финальное тестирование ЕЩЁ не пройдено".
Можно кликать по ячейке, но это неудобно.
Или может я чего-то не знаю?
  •  
    11 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Вообще это отображается в посылках участника. Если еще тестируется, то пишет что в очереди.
    Хотя, конечно, согласен, не удобно.
    •  
      11 месяцев назад, # ^ | Ответить
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я имею в виду, когда смотришь на общую таблицу (первую страницу, обычно -)), и тебя интересуют результаты всех участников.
 
11 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Предположим я сдал задачу, потом понял, что в ней есть ошибка и перепослал(взломать меня не успели). Получу ли я за это -50 баллов? Раньше мне казалось, что конечно получу, но в правилах об этом ничего сказано, а если к тому же первое мое решение пройдет, то и "неудачной" эту попытку назвать нельзя, так что теперь я не уверен.
  •  
    11 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится

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


 
11 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Просто те баллы, которые ты за нее получал снимаются, а вместо них ставятся баллы, которые давали за эту задачу в МОМЕНТ ресабмитта, скорее всего так, а вот неудачные сабмиты вроде уже дают минусы...
 
9 месяцев назад, # | Ответить
  Проголосовать: нравится +7 Проголосовать: не нравится
@MikeMirzayanov: Any particular reason why successful hacks are not added to the global system tests?

I am asking because some hacks may expose bugs that the system tests may not cover.  In such a situation, a solution may get accepted because the author of the hack failed to check the solution or was in a different room.
 
8 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Please fix "loose" to "lose". :)
 
8 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Heyi.. how to register for contests? i am new to this site. and i didnt find any link which refers to "Registration for Contests".. i am little bit confused. am i eligible for contests or not? please give me an answer quick , so that i can register quick if i am eligible... 
 
6 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Hi, im new here.. I am just wondering .. what if i don't submit a prob ? Will that reduce my results? (Please don't mind if my English is not so good..)   ^_^
  •  
    6 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Your rating changes if and only if you submit a solution. You may carelessly register and watch prob. statements (you can do it even logged out) without worrying about rating. :)
 
5 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Я что-то недопонял: если я решил, например, задачу А и заблокировал её для себя, то я могу взламывать  только другие решения задачи А ? Или я могу ещё взламывать решения задачи В или С?
  •  
    5 месяцев назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Если Вы заблокировали задачу А, то можете ломать другие решения только по задаче А.
 
5 месяцев назад, # | Ответить
Правка 2   Проголосовать: нравится 0 Проголосовать: не нравится

I have noticed I cannot cancel my registration to a contest anymore. If I'm not mistaken, now the rules are that if you send a solution you will be rated.

UPD: Ok now I'm sure about it. It's a pity I cannot partecipate in this round... waiting for next week :)
 
5 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Давно крутится в голове такая идея... предоставить пользователям возможность устраивать для себя самим контесты по задачам с прошедших раундов. Условно, участник выбирает раунд, "включает" его для себя и получает возможность в течении 2-ух часов сдавать решения по задачам тура и получать результат проверки ТОЛЬКО на претестах, а по истечении 2-ух часов получать результаты полной проверки по всем тестам.
Было бы очень удобно для тренировок по задачам кодфорсес и подготовки к рейтинговым контестам.
 
5 месяцев назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
п.4 формата: "Может даже оказаться, что ваше решение каким-то случайным образом прошло все претесты — но это скорее из области фантастики." - Это юмор или как?
 
»
7 недель назад, # | Ответить
Правка 2   Проголосовать: нравится -35 Проголосовать: не нравится

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


UPD.

Ненавижу, когда какие-то балбесы, мягко говоря, ставят минусы, даже сами не понимая, почему. От великого ума, наверное...

  •  
    »
    »
    7 недель назад, # ^ | Ответить
      Проголосовать: нравится +20 Проголосовать: не нравится
    Почти всегда пишу такой на задачу А.
 
»
3 недели назад, # | Ответить
Правка 2   Проголосовать: нравится -31 Проголосовать: не нравится

Я думаю, что было бы не плохо изменить название вердиктов на английский, т.е. Accepted, Wrong Answer, Time limited, это было бы куда удобнее и привычнее, или хотя бы, возможно, сделать выбор языка вердиктов. Помню часто на CF были у меня косяки когда видел    Ошибка времени исполнения  , увидев слово "времени", происходили ассоциации с вердиктом TL, что убило меня т.к. в задаче было 6 математических действий. Да и вообще как-то красивее по-моему вердикты на английском.

UPD 

Решил предложить небольшую идейку, нет блин народу же надо минусовать на за что. :(

  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится +12 Проголосовать: не нравится
    Как вариант, можно использовать английскую версию сайта :)
    Думаю, что это неоднозначный вопрос. Кому-то нравятся вердикты на русском языке, кому-то на английском. Хотя, мне тоже нравятся на английском :)
    •  
      »
      »
      »
      3 недели назад, # ^ | Ответить
        Проголосовать: нравится +1 Проголосовать: не нравится
      Как вариант он, конечно, есть, но немного неудобно переключаться между языками, т.к. охота условие задач читать на родном языке, учитывая что CF подвисает во время контестов, то вообще мне не импонирует лишний раз обновлять и изменять язык =)
      •  
        »
        »
        »
        »
        3 недели назад, # ^ | Ответить
          Проголосовать: нравится +9 Проголосовать: не нравится
        Если на сайте была бы возможность переключения между способами отображения вердиктов, было бы наверное удобнее. Но, у многих ли есть в этом острая нужда? :)
        Поскольку это задача не первоочередной важности, то думаю, что если она и будет реализована, то очень нескоро :)
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится +2 Проголосовать: не нравится
    Это уже много раз обсуждалось. Надо привыкать к общепринятому варианту.
    По UPD: Не пишите про минусы, это раздражает народ ещё больше.
  •  
    »
    »
    3 недели назад, # ^ | Ответить
    Правка 2   Проголосовать: нравится 0 Проголосовать: не нравится

    А ваc не смущает `time` в runtime error?

    •  
      »
      »
      »
      3 недели назад, # ^ | Ответить
        Проголосовать: нравится -8 Проголосовать: не нравится
      Между прочим у меня тоже случился шок, при виде такой надписи "ошибка времени исполнения". Это нормальный русский термин, я его слышал, но я к нему не привык, и заглючил.
 
»
3 недели назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
How a contest point include to CodeForces rating point ??
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится +12 Проголосовать: не нравится
    Only the rank is important. Points as numbers don't mean anything.

    Exact formula is not public.
 
»
3 недели назад, # | Ответить
Правка 2   Проголосовать: нравится +9 Проголосовать: не нравится

Хотелось бы услышать мысль  MikeMirzayanov об этом:

Согласно пункту 14 правил, изложенных выше - это честно? Не то, чтобы я был против этих парней, но, может, нужно как-то наказывать участников, которые играют нечестно? И будут ли в будущем проверятся попытки сдать чужой код во время соревнования? Моя мысль - нужно банить.
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится 0 Проголосовать: не нравится
    Сделай нормальные ссылки (нужно ткнуть на #).
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится +1 Проголосовать: не нравится
    Индусская мафия, блин.
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится +3 Проголосовать: не нравится
    Банить быстро, решительно!
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится -1 Проголосовать: не нравится
    А они опять где-нибудь проявятся...

    В принципе можно оставить всё как есть. Нормальные люди приходят сюда качать свои скиллы (и расти) - а читеры тупо тратят время и роют себе могилу (как разработчикам)...
 
»
3 недели назад, # | Ответить
Правка 3   Проголосовать: нравится -5 Проголосовать: не нравится
I have a suggestion. 
Maybe... we can get different scores after hacking different problems.
i.e. for problem X, if its max. score is S, we can get S * 10%  points after a successful hacking attempt, or lose S * 5% points after unsuccessful hacking attempt. 
Er, just a personal thought,^_^...
  •  
    »
    »
    3 недели назад, # ^ | Ответить
      Проголосовать: нравится +3 Проголосовать: не нравится
    It is not a good idea, I think. The difficulty of a problem is not relevant to the hacking difficulty. Sometimes it is easier to hack harder problem since there is a good chance for someone to have buggy implementation or wrong algorithm on it. On the other hand, sometimes tricky easy problem gives more opportunity for successful challenges.
 
»
2 недели назад, # | Ответить
  Проголосовать: нравится 0 Проголосовать: не нравится
Can I see the test case that was used to hack my solution after the contest?