Полную версию правил можно найти по ссылке.
Ниже по тексту представлен только предположительный формат — что-то наверняка поменяется. В частности, надеюсь на помощь сообщества для поиска нелогичностей и каких-то тонких моментов. Впрочем, я уже обсуждал этот формат с динозаврами спортивного программирования, и никто на явные ляпы не указал.
Формат 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. Решения и генераторы могут содержать код, чьим автором являетесь не вы, только в двух случаях:
- этот код был написан и опубликован/распространен строго до начала раунда,
- этот код сгенерирован с помощью инструментов, которые были написаны и опубликованы/распространены строго до начала раунда.
Любое использование стороннего кода не должно нарушать лицензий или авторских прав третьих лиц. Помните, что даже выложенный в открытом доступе код не всегда является свободным! По требованию правообладателя код, нарушающий лицензию или авторские права, может быть признан нарушающим правила.
В случае внесения изменений в код из пунктов 1) и/или 2) все эти изменения должны быть сделаны исключительно лично вами.
В случае возникновения спорных ситуаций (сомнения по поводу времени публикации, подозрение на нарушение правила об отсутствии общения во время раунда, прочее) бремя доказательства соблюдения правил полностью ложится на участника.
В настоящее время единственным надежным способом доказательства соответсвии правилу является наличие публикации используемого кода в интернете и его присутствие в опубликованном виде в кэшах известных поисковых систем.
Например, этому правилу соответствует использование кода с сайта http://e-maxx.ru/ или из Wikipedia (если код был написан и опубликован/распространен строго до начала раунда). Соответствие правилам использования в этом случае легко проверяется с помощью кэшей поисковых систем. Аналогично, допустимо использование кода из книги/статьи, опубликованной до контеста. С другой стороны, использование внутрикомандных заготовок (например, для финала ACM-ICPC) недопустимо, если не существует надежного и объективного способа доказательства времени написания этого кода.
Это правило ни в коей мере не послабляет запрет на общение, обсуждения или какую-либо другую форму коммуникации между участниками на любые темы, имеющие отношения к задачам, во время раунда.
16. Обфусцировать код решения, а также создавать препятствия его чтения и понимания запрещено. То есть запрещено использование любых спец. приемов, призванных усложнить чтение кода с целью понимания его работы.
17. После двух часов этого развлечения соревнование заканчивается и у каждого участника выбирается последнее решение по каждой задаче (разумеется, только успешное). Все такие решения перетестируются на финальном наборе тестов. В результате у кого-то решения пройдут, у кого-то упадут. Финальным результатом за соревнование считается сумма баллов за все решения, которые прошли финальное тестирование плюс то, что вы получили (или, наоборот, потеряли) за осуществленные взломы.
Все, finita la comedia, то есть game over.
Жду ваших мнений,
MikeMirzayanov
P.S. Я умышленно избегаю топкодеровского термина challenge: он плохо переводится на русский, к тому же у Топкодера могут быть амбиции на эксклюзивность челлендж-фазы и т.п. Прошу в обсуждениях использовать термин "взлом", спасибо за понимание.
5.Если вы заблокировали задачу, но ваше решение взломали, то у вас больше нет возможности взламывать чужие решения.
Зачем же так жестоко? Казалось бы, информация о том, что твоё решение взломано, сильно в дальнейших взломах не поможет. Или это правило нужно для того, чтобы заблокировать стратегию "отсабмитил фигню по сложной задаче, чтобы получить возможность взломов"?
Мне ещё кажется, может так получиться, что какой-нибудь слабый участник допускает в решении много багов, а сильный участник при взломе умышленно делает тест только против одного бага, чтобы иметь возможность взломать это же решение ещё один раз после ресабмита. Может, стоит ввести ограничение на взлом одной и той же задачи одного и того же человека (не более одного успешного раза)?
Вообще, интересно было бы поучаствовать в контесте по такой системе, должно получиться очень весело. Спасибо вам за огромную и важную работу, которую вы проделываете!
Как я понял "взлом" - это предложение теста, на котором сданная программа не даёт правильного ответа. Может быть, лучше использовать термин "опровержение"?
У меня несколько вопросов:
1) Сохранится ли деление на дивизионы?
2) Если ответ на первый вопрос "Да", то в одной комнате будут участники одного и того же дивизиона или нет?
Так что какие форматы будут нравиться этим людям, такие контесты и будут.
Ставить перевод строки в конце файла, даже исходника, это что-то типа правила хорошего стиля. Никто же не заставляет вас делать разумные отступы в коде? Вот и перевод строки ставить тоже полезно.
eJudge взломали!
И нет сабмитов, нет контестов, все сидят в печали...
:o)
Для распределения участников по комнатам наверное лучше всего подойдет "корзинный" метод жеребьевки. В футболе например он используется. Суть такова:
Например 1-20 человек по рейтингу идут в первую корзину. 21-40 во вторую и т.д.
Далее из каждой корзины случайно или как-нибудь еще выбирается по 1 человеку и они идут в первую комнату. Далее также выбираются и идут во вторую комнату. И так пока не кончатся люди. Таким образом средний рейтинг каждой комнаты будет сбалансирован.
>термина challenge: он плохо переводится на русский
испытание
"Я наиспытывал решений на 200 баллов"звучит хуже, чем "Я нахачил решений на 200 баллов".
На мой взгляд лучше остановится на взломе.
Как тут уже заметили, у этой системы есть огромный недостаток - это равная стоимость задач. Точнее получится так, что
Выход из ситуации только один - взвешивать задачи. Мои идеи:
2) "В том случае, если у жертвы решение заблокировано — то после его взлома участник может только расстраиваться, потому что исправить ситуацию уже невозможно (epic fail)." Т.е. если твою заблокированную задачу взломали, то ты можешь о ней забыть.
3) Не ошибается только тот, кто ничего не делает.
Все участники делятся на два дивизиона.
Из каждого дивизиона зарегистрировавшиеся участники делятся на комнаты по 20 человек.
Получаем:
- внутри комнат можно делать взломы.
- внутри дивизионов по завершении соревнования считается рейтинг.
Т.е. если человек написал плохое решение в комнате лузеров, оно же всё равно упадёт на нормальных (системных) тестах, а изменения общего рейтинга для него будут считаться относительно всех участников дивизиона, НЕ комнаты.
Если имеется в виду, что я не должен иметь возможность заваливать, пока не умею полностью решать — нужно как-то это гарантировать; непонятно, как это сделать так, чтобы претесты не были полным набором тестов. Если нет, то хочется избежать угадывания претестов — например, дать другие (меньшие) ограничения на претесты. Угадывание же добавляет элемент случайности.
Наверно, эта ситуация особенно знакома участникам индийских контестов, в которых авторы так не любят указывать ограничения: у простых задач есть много разных наборов ограничений, на которые нужны разные решения; какой же из них имели в виду?
Про обещание, они могли бы указать, что тесты содержат "все" случаи попадающие под ограничения. Т.е. если неправильное решение проходит тест, то это случайность, и вина авторов задачи, что они не смогли его сломать.
Нельзя смотреть чужой код, пока не заблокируешь задачу.
С двумя аккаунтами правда можно
Никто не будет ни хитрить ни подсматривать.
Вы отталкиваетесь от изотупичного предположения, что можно будет пройти претесты халтурным решением, что, вероятно, неправда.
Претесты скорее всего будут проверять почти всё, за исключением случаев типа
1. Ответ не влазит в int
2. Ответ надо выводить по модулю, и вы делаете что-то типа if( n == 0 ) cout << 1; вместо cout << 1 % p;
3. Вы не рассматриваете граничный вниз случай
взял на вооружение :o)
У меня два небольших вопроса:
1) Зачем вообще блокировать свою задачу? Только для того, чтобы иметь возможность взламывать чужие решения? И можно ли вообще не блокировать успешно решенную задачу (прошедшую претесты)?
2) Правильно ли я понимаю, что контест не будет разделяться на фазы, как на топкодере? (То есть, фазы решения задач и взлома по сути будут проходить одновременно: от начала до конца контеста)
- Можно не блокировать.
- Блокировать, чтобы просматривать решения. Скорее всего это нужно для того, чтобы нельзя было посмотреть чужие решения, понять свой какой-то недочёт и резко-резко исправить ситуацию. Исправить то уже нельзя - решение заблокировано.
2) Да, видимо всего одна фаза.
Иначе можно заблокировать, посмотреть код сложной задачи у сильных участников (переписать поменяв что-то по своему, чтобы уж совсем 1в1 не был код) ну и соответственно решить
Те кто решат мало задач вряд ли смогут взломать легкие задачи у сильных участников.
Просто не очень честно то, что если человек 1 сдал какую-то задачу, остальные не могут его челленджить. Как-то это странно)
потому что написание кода и взлом - два принципиально разных способа зарабатывать баллы и они, на мой взгляд, никак не должны зависеть друг от друга, поскольку здесь речь идет о двух различных навыках - писать код и искать ошибки + подбирать тесты.
"А теперь прикинь, если дать возможность сразу заблокировать задачу."
Вот возможно именно поэтому надо сделать в 2 части - во второй части после окончания кодинга можно будет взламывать все решения.
1) В зависимости от задачи участникам может быть выгодно или наоборот не выгодно чтобы его решение челленджили. Выгодно - если написал не совсем понятное решение и взлом позволяет "тестировать" до окончания задачи. Не выгодно - ты написал все что мог и уверен что лучше уже не придумаешь + лелеешь надежду на то, что твое решение пройдет все авторские тесты. Другими словами ты надеешься на удачу, но сильно сомневаешься что нет такого теста который мог бы завалить твое решение. При этом естественно, что ты не хочешь дарить никому баллы. Получается, мы имеем 2 ситуации, которые могли бы довольно сильно повлиять на тактику во время контеста. Можно при сабмите сделать галочку что-то типа "пожалуйста хачьте мое решение", которая бы приносила тем кто челленджит больше баллов, чем за челлендж задачи без этой галочки. Но это все вносит некоторую специфику и наверно такие вещи вносить все-таки не нужно.
2) Наверняка найдутся люди которые будут стараться сабмитить в самом конце чтобы их решение ни дай бог не почелленджили. Может сделать после окончания фазы кодинга еще минут 5 на челлендж)?
3) Возможно стоит сделать попытки по взломам тоже с разными весами.Веса видимо должны зависеть либо напрямую от стоимости задачи, либо являться некоторыми параметрами, выставляемыми авторами до начала контеста.
Я слышал не редко от людей, что у них уже автоматизированный процесс перегоняет решение в FineReader, а затем запускает стресс-тест против своего решения :о)
Первую половину я тоже как-то давно писал, а вот до стресс-теста руки не доходили.
Ну и мои 5 копеек:
1) Не очень нравится, что фазы решения и взлома полностью совмещены. Мозги для них как бы совсем по-разному работают (во всяком случае у меня :). Опять же, кто слабо решает, будет преимущественно искать удачи на взломах, т.е. решать так и не научится. Предложение: фаза взлома начинается через 1 час после начала контеста (т.е. в течение 1-го часа ни просматривать, ни взламывать чужие решения нельзя!)
2) А теперь по поводу самого взлома: чтобы сделать его более интересным, надо сделать привязку количества баллов за успешный взлом к разнице рейтингов участников. То есть, чтобы выгоднее было взламывать решения топовых участников и тех, кто выше тебя по рейтингу.
Реализовать можно домножением 100 баллов на коэффициент типа:
С = 1 + (Rvictim - Rmy) / 1000
То есть,. если участник с рейтингом 1500 (как у меня) взломает решение участника с рейтингом 2000, то я получу 150 баллов. Если же наоборот, то он получит только 50 баллов. При равенстве рейтингов будет 100.
Я исходил из предположения, что в одном дивизионе разброс рейтинга больше 1000 не будет, забыв, что в 1-м дивизионе может быть 1500. Так что формулу надо поменять на такую:
С = 1 + (Rvictim - Rmy) / 1500.
Плюс сделать минимальное кол-во баллов за взлом, например, 20.
Идея была: чтобы участники взламывали решения примерно равных и более сильных. Ну и чтобы хай-левел участникам не выгодно было ньюбов хачить! :)))
На мыло пришло письмо
...оставил комментарий на ваше сообщение. Перейдите по ссылке http://mirror.codeforces.com/comments/466#comment-6607 для просмотра.
Надобы, наверное, как-то всё-таки разделить отсылку на почту ссылок codeforces.com и codeforces.ru (для русско- и англоязычных пользователей).
Мне ещё с www.codeforces.ru приходило. И тоже нужно было логиниться отдельно.
yo wassup. how are you doing. i see this is like 14 years old. wanted to check how u doing
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.
Is this blog updated,sir??
no senor, i guess since it talks about 20 participants in a room but the current contests are totally online the marking scheme and the rules about hacking might be the same overall
Допустим, я сдал четыре задачи, я их заблокировал, но мне скучно. Я беру, и все поинты сливаю на то, чтобы поднять какого-то серого чувака в комнате. Так как я теряю 50, а он получает 25, он получит половину моих поинтов. Учитывая, что что-то он все-таки сдаст, ему будет очень клевенький дамп вверх :о)
А если психов как я будет два (а лучше три :о)), то можно чувака, который ничего не сдал, вывести на первое место.
Я думаю, если бы такое правило реально ввели, были бы соревнования по вытаскиванию серых чуваков в топ :о) Чья комната лучше откормит серого чувака :о)
читать "который сдал самую простую задачу, об которую мы собственно все и будем его поднимать"
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.
One more argument for making penalty for unsuccessful hacking - it should stop hacking flood and brute force hacking :-D
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.
I liked the idea of silent and multiple hacking by Kalinov. It makes sense.
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.
No, you can't copy-paste other's solution.
You can still hack others
првильно ли я понимаю :
я могу взламывать только те задачи, которые я на етот момент здал и заблокировал ?
и если у меня задачу взломали, то возможнось взлома терятся или нет ?
>я могу взламывать только те задачи, которые я на етот момент здал и заблокировал ?
да
>и если у меня задачу взломали, то возможнось взлома терятся или нет ?
нет, не теряется
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)
А вдруг я ошибусь? А вдруг неверный взлом будет? А потом еще больше штраф будет? Нет, лучше не буду взламывать...
А сейчас штраф достаточно небольшой, одинаковый для всех и понятный. И бонус за удачный взлом точно такой же ясный и понятный.
Никто же не запрещает взламывать?
А инициатива она всегда наказуема.
И никто не заставляет.
А так уже целые тактики есть что и как делать. :-)
Усложнить? о_О Последние пять рейтинговых контестов для обоих дивизионов в среднем только три участника решали все задачи. (Да, я посчитал.)
Sorry for my bad English
Here's a sample Java solution for problem A from beta round #1
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.
Есть вопрос, даже скорее пожелаение...
Почему нельзя сразу тестировать на претестах и финальных тестах, также сразу делать таблицу конечных результатов, но пользователю, во время олимпиады, отображать только как прошли претесты и таблицу "предварительных" результатов. (ну т.е. то как есть сейчас)....?????
Обобщю.... можно плюс ко всему, что есть сейчас, добавить тестирование на финальных тестах, но без отображения пользователю во время олимпиады....
Это ускорит работу по созданию конечных результатов !!!
Это логичная идея, и вроде бы на топкодере так и поступают. Во время контеста претесты по идее создают очень маленькую загруженность (в самом деле, есть 5 задач, по каждой не более 10 претестов, а тестирующих машин - тоже около 10).
Я думаю, просто до реализации этой фичи ещё не дошли, - и так вон пока виртуальные пользователи только-только реализованы.
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.
Можно кликать по ячейке, но это неудобно.
Или может я чего-то не знаю?
8. Перепосылка решения даже в том случае, если оно на текущий момент пройдено, может уменьшить ваш балл. Это произойдет в том случае, если перепосылка будет успешной (то есть пройдет претесты + взломы). В таком случае, предыдущая успешная попытка будет считаться штрафной.
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.
Кажется такое планируется. :-)
Кстати, чисто топкодеровский подход к делу... Интересно бы посмотреть, кто умудрится написать идеальный код, который просто невозможно взломать;)...
UPD.
Ненавижу, когда какие-то балбесы, мягко говоря, ставят минусы, даже сами не понимая, почему. От великого ума, наверное...
Я думаю, что было бы не плохо изменить название вердиктов на английский, т.е. Accepted, Wrong Answer, Time limited, это было бы куда удобнее и привычнее, или хотя бы, возможно, сделать выбор языка вердиктов. Помню часто на CF были у меня косяки когда видел Ошибка времени исполнения , увидев слово "времени", происходили ассоциации с вердиктом TL, что убило меня т.к. в задаче было 6 математических действий. Да и вообще как-то красивее по-моему вердикты на английском.
UPD
Решил предложить небольшую идейку, нет блин народу же надо минусовать на за что. :(
По UPD: Не пишите про минусы, это раздражает народ ещё больше.
А ваc не смущает `time` в runtime error?
Хотелось бы услышать мысль MikeMirzayanov об этом:
В принципе можно оставить всё как есть. Нормальные люди приходят сюда качать свои скиллы (и расти) - а читеры тупо тратят время и роют себе могилу (как разработчикам)...
nothing to say
По оригинальным правилам CF, по которым тут прохотят раунды — 2 часа, правила квалификации несколько отличаются.
Я в первый раз на сайте, зарегистрировался на соревновании но не могу понять, как начать участие?!
Жмите кнопку "войти" на вкладке "Соревнования". Там читайте задачи и сдавайте.
PS: возможно вы зарегистрировались только на сам кубок. В таком случае на вкладке соревнования же, вы сможете зарегистрироваться на раунд
How can I see the whole input in Source view? i.e. Test #6
Unfortunately, it's impossible.
Я тут впервые, так что извините за, возможно, глупый вопрос: гуглить можно?
Можно, но не нужно:)
Ну я, к примеру, забыл, как читать из файла/стандартного ввода. Это загуглить — тоже не комильфо?
Если ты будешь гуглить, как читать входные данные, то не успеешь решить ни одной задачи.
Я так понял, что гуглить не возбраняется, но на это времени толком нет. Спасибо за ответы :)
Всякую техническую информацию можно гуглить вообще без проблем. На самом деле, никто не запрещает гуглить даже решения задач, но авторы обычно стараются сделать так, чтобы это не помогало. Ну и тогда становится не так интересно решать, но это уже каждый решает для себя, раз в правилах ничего нет.
Большое спасибо! Вы ответили на мой вопрос наиболее понятно :)
So many experts are here,I'd like to raise my quesiton:I wonder how can I get a shirt if possible ? Thanks beforehand.
you were late for two years
I have a doubt . If I solve the first problem 10 minutes after the start of competition and second problem after further 15 minutes i.e. 25 minutes after the start of competition . Then while calculating the score for the second problem solved will the time considered bye 25 minutes or 15 minutes . If it is 25 minutes , then is it not better to solve difficult problems first because there the penalty is larger . The text says it is better to solve problems by order in difficulty ( ascending or descending ) . May be difficult problem will large time so will affect time of larger number of problems , hence ascending order of difficulty . But just clarify which time will be considered . Thanks .
Ofcourse 25. Otherwise, one would submit the solutions all at once. Even after 115 minutes, this way would give 30 % of 500 to one problem and full score to remaining problems.
А что насчет того, чтоб можно было видеть первые попытки решения задач? Выделить, как-нибудь вроде как на neerc.
Если я заблокировал свое решение для задачи, а затем придумал контртест для него, почему бы не разрешить мне взломать самого себя? Баллы за задачу я потеряю в любом случае, но заработаю 100 очков за взлом.
В случае очень неполных претестов это дает возможность специально сдавать заведомо неверные решения и зарабатывать на них 100 баллов.
Потому что так можно специально за eps до конца сдавать неверные/неоптимальные решения(когда уже другого не придумаешь) и получать баллы нахаляву
Так ведь вроде теряете вы 50 баллов. Цикл положительного веса получается :)
Цикла здесь нету — с каждой задачей такое только 1 раз получится)
Но халява действительно есть)
Это если считать, что для взлома своего решения надо его заблокировать, а это правилами не оговаривалось) Откуда нам знать, может правилами запрещается только лишь смотреть чужой код по незаблокированной задаче, а уже из этого следует невозможность взлома? :)
Да ладно вам) За что минуса, хоть, скажите)
На основании идеи "хакать самому себя" возникла альтернативная идея: возможность "отозвать (отменить) своё решение". Если сам понял неправильность своего "решения" -- имеешь возможность хотя бы не кормить соперников баллами за хаки.
Я не говорю, что она суперценная, но всё же интересно, видят ли другие в ней какую-то ценность и какие-то принципиальные недостатки?
Вопрос: а как происходить распределение рейтинга? Например участник который набрал больше балов за задачи опустился, а игрок который набрал меньше — поднялся.
Рейтинг Codeforces
Пара вопросов по пункту 16:
Считается ли обфускацией отправка кода, транслированного из другого языка (не поддерживаемого системой)?
Если на первый вопрос ответ "да", считается ли обфускацией транслированный код + исходный код в комментарии?
Блин, такая идея! Такая идея! Берем неподдерживаемый язык; компилируем в какой-нибудь javascript; в комментариях кладем исходник, но с явной ошибкой; ловим лулзы на влзломах :)
Разумеется, такие ситуации должны быть запрещены :)
Наверное, это должно зависеть от языка, в который транслируете. Если в Perl, то да.
А что во что Вы собрались транслировать, если, конечно, не секрет?
В C, как самый низкоуровневый из доступных.
В четвертом пункте опечатка: "еще мы их зовет претестами"
Вместо того, чтобы закидывать downvote-ами, может объясните мне, в чем я не прав?
Такое обычно минусуют, потому что есть общепринятая практика писать подобные сообщения в личку. Потому что ошибка исправляется, а комментарий остается ненужным мусором и напоминанием о былых упущениях.
Большое Вам спасибо! Учту на будущее.
Please even once vote up my comment ! I'd be happy.
There.
Too bad I'll downvote repeated versions of this post and any other offtopic/spam comments, so you'll, in fact, lose contribution due to trying too hard...
Sorry, my screen was upside down
Voted down by mistake....
You cant expect people to upvote you for that comment...
LOL
.
Можно ли принять участие в 2-ой квалификации, если в первой команда не набрала достаточное количество очков для прохода в 1-ый раунд?
да, для этого ее и проводят
Зачем подразделяются участники на комнаты?
Цитата:
Почему не сделать так, что можно взламывать решения любых людей?
Я думаю, чтобы ограничить количество баллов, которые может получить за взломы один участник. Иначе можно найти один удачный тест и после этого до конца контеста ломать всех подряд, получая over9000 взломов и ничего больше не решая.
Можно вообще научиться решать задачи, и только и делать, что сабмитить решения по всем задачам в начале контеста, а потом идти в бар и никого больше не ломать. Кажется, несправедливо, что кто-то может забить на взломы, просто-напросто решая гробы и получая over9000 очков.
просто шутка
Why no format requirement? I posted code like ~~~~~ printf ("%d ", a[i]) (i meant several spaces but it only display one and i dont know y) ~~~~~ and succeed.
Besides, where I make private special judge(That means no fixed answer) (Another website is also alright)
Hi I am quite new to Codeforces.
I am have a couple of questions:
a) If I have locked my solution, and someone hacks my solution(as it happened today), then can I unlock my question to resubmit it? Also will I be receiving any points for a submission that passed the system pretests but got hacked later. As I see, it is showing '-1' in the points table against that question.
b) Also, how to hack anyone's solution. How to create a hack? Etc.
By the way, can anyone tell me what is this Virtual round? DO I get ratings for participating in Virtual rounds?
First of all, you have posted this message in Russian branch and most of English-speaking users couldn't see it)) Answers to your questions:
a) You couldn't unlock your locked submission in any way. And you receive some points if and only if you solution pass all test cases.
b) During the contest you could open standings in your room and open solutions of the other contestants.
Hi I am quite new to Codeforces.
I am have a couple of questions:
a) If I have locked my solution, and someone hacks my solution(as it happened today), then can I unlock my question to resubmit it? Also will I be receiving any points for a submission that passed the system pretests but got hacked later. As I see, it is showing '-1' in the points table against that question.
b) Also, how to hack anyone's solution. How to create a hack? Etc.
By the way, can anyone tell me what is this Virtual round? DO I get ratings for participating in Virtual rounds?
Virtual round is an emulation of any previous CF rounds. You don't get any rating changes if participate in it. you could read more here http://mirror.codeforces.com/blog/entry/2607?locale=en
Can I use third party algorithm or data structures? Not other participants code on the contest. And can I use other participants codes from previous contests? Writing DFS from scratch is so difficult. -Edit. Sorry I missed clause 15.
1) the code was written and published/distributed before the start of the round, 2) the code is generated using tools that were written and published/distributed before the start of the round.
But now I have another question. Is there any compile-time limit? If an open source third party algorithm library is big, can I copy and paste whole library into my Source.cs file?
As far as I remember, compilation time limit was 10 or 15 sec but I think you'll hit source limit first
Whom to contact for errors in system testing ?
Maybe I'm really slow, but I haven't found the unambiguous answer to whether we are allowed to use our own pre-written code?
I guess it implies that I can implement all the classical algorithms myself (instead of writing it from scratch every time or unethically copy-pasting from public sources) and publish it on GitHub or other hosts.
Could anyone please confirm?
Let a solution contain uninitialized variables. It may or may not return wrong answer during pretests. I tried to hack such a solution, but got unsuccessful hacking attempt. Is there a way by which we can hack these solutions surely. (Not on chance!)
No
Read about undefined behaviour :)
For Educational Rounds, you can download the exact version of compiler used and test locally (you will need Windows for that). An alternative is to use custom invocation tab. I don't think there is any good way to challenge them in the normal rounds though.
I have one question though:
Suppose i keep getting wrong answers on pretests during multiple attempts, will i get penalty for points even though my solution never got accepted.
No you won't. The penalty decreases the score of the problem for you, not your score. So if you have 500 points, and you make WA on a 1000 point task, then you'll still have 500 points, and the 1000 point task will become 950 point task.
You shouldn't hold any contest. It's a shame
If my solution passed pretests, and I fixed my solution and resubmited it. After that my previous submission was hacked, how will my points and hacker's points change?
Хотел бы задать вопрос. Я поучаствовал в Codeforces Round #572 (Div. 2). Я заслал ровно одно решение, которое прошло и претесты, и системное тестирование. Задачу я не блокировал, никаких решений взламывать не пытался. Но у меня почему-то отнялось 80 баллов. За что? Я же решил одну задачу!
Это штрафные баллы, чем позже отправил, тем больше отнимут, отсылай задачу раньше и отнимать будут меньше.
I just noticed that today I am not able to participate in the contest which I've already registered in. Now in this case (which I can't enter the contest) is this going to affect my rating or not?
as long as you don't submit anything during contest, your rating won't be affected
i love it
Добрый день. Я ни разу не участвовала в соревнованиях, и у меня есть вопрос насчет правильного понимания правил. Допустим, мне нужен метод сортировки, и он опубликован, например, на сайте stackoverflow, 2 года назад. Получается, я имею полное право его копировать и использовать в своём решении (при условии, что все изменения я вносила самостоятельно), я правильно понимаю?
Здравствуйте. Да, имеете право. Вот здесь подробнее https://mirror.codeforces.com/blog/entry/8790
Я решил задачу, прошел претесты и хочу её заблокировать. Но на странице с задачей нет кнопки "заблокировать". Как это сделать?
До сей поры думал, что количество теряемых баллов за минуту вычисляется формулой изначальная стоимость / 250. Судя таблице в посте это формула верная. Но по последнему контесту вижу такую картину:
MikeMirzayanov может быть есть пост на апдейт этих констант и я его пропустил? Скорость потери баллов непропорциональны стоимости задач, is that ok?
P.S: в учет взял топ 2(boboniu и maroonrk).
в топы коммент)
If I don't take the test, will my rating decrease?
If I register but anyhow forget to participate in the contest, will I lose ratting?
If you didn't make any submissions in the contest, it's unrated for you.
Hey MikeMirzayanov, this comment is regarding the mail is received on 31/01/2024 at 19:24 IST. I am completely unaware/unrelated of the user tagged in the mail as "Villager26" and I have no idea how my solution seems to be coinciding with his solution. I am providing as much proofs as I possess: 1: My submission(244137728) is much earlier than "Vilager26"(244144784). 2: The solution size is very small and requires very similar variables like i, j and ans. This could be possible reason for plagiarism. 3. May be my ideone.com account has a public code view settings enabled, which I deeply regret and will change to private as soon as possible.
Please look into it and hope this warning doesn't affect my ratings. Hope to listen from you soon.
Dear Codeforces Team,
I am writing to appeal the recent rating reduction for my solution to Problem 2036D, as flagged due to similarities with other submissions. I understand that this process is automated to maintain contest integrity, but I assure you that I approached the problem with original thinking and adhered to all competition guidelines.
Solution Overview: In my code, I used a method to extract "layers" from the input grid, then count occurrences of a specific target string by iterating over each layer. This approach involved:
Layer Extraction: By traversing the matrix edges from the outermost to the innermost layer. Counting Occurrences: Using string manipulation and a sliding window approach. Study Resources Referenced: Before the contest, I studied a few sources on matrix traversal techniques and string pattern matching, specifically:
General matrix traversal methods to work with layers or spirals. Sliding window technique for string matching from standard tutorials. These foundational methods could explain any unintended resemblance between my solution and others submitted in the contest, as they represent common problem-solving patterns.
Request for Review: Given the honest approach I took and my careful adherence to the rules, I kindly request that my rating be reconsidered. I’m committed to fair competition and would never intentionally engage in any actions against the rules.
Thank you for your attention, and please let me know if I can provide further details or clarifications.
Best regards, racbhitbit