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

Автор fcspartakm, история, 11 дней назад, По-русски,

Привет, Codeforces. Ниже вы сможете узнать об обновлениях в системе Polygon.

Была проделана большая работа, чтобы упростить подготовку школьных задач, в которых используются группы и баллы для тестов. Во вкладке General Information можно включить опцию проставления баллов для каждого теста. Эта опция включается сразу для всей задачи, то есть для всех тестсетов. Напомню, что тестовые группы включаются для каждого тестсета отдельно во вкладке Tests.

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

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


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

Также теперь можно добавлять для каждой группы зависимости от других групп. Если группа A зависит от группы B, то вне зависимости от того, были ли пройдены тесты группы A, вы получите 0 баллов за все тесты этой группы, если хотя бы один тест группы B не будет пройден.

Теги для решений по группам и по тестсетам

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

Обновлённый запуск Invocations

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

Пакеты по задачам с учетом нововведений

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

Спасибо за внимание! Надеемся, что реализованные улучшения будут вам полезны.

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

»
11 дней назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Автокомментарий: текст был обновлен пользователем fcspartakm (предыдущая версия, новая версия, сравнить).

»
11 дней назад, # |
Rev. 6   Проголосовать: нравится +59 Проголосовать: не нравится

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

»
11 дней назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

That sounds amazing! :)

Are those partial scores handled correctly when the problems are exported into a Gym contest?

  • »
    »
    11 дней назад, # ^ |
    Rev. 2   Проголосовать: нравится +21 Проголосовать: не нравится

    Partial scoring seems to work in IOI-format mashup contests at least, the scoreboard is updated correctly. I assume it works in public Gym contests too.

    There's a minor quirk, however: even if all test groups are solved, the verdict is still "Partial score: 100 points", for example. I think that a complete solution should be listed as "Accepted: 100 points" or something similar.

»
11 дней назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

Finally! This will make it a lot easier to prepare school contests :D

In addition, it would be perfect if we could tag groups for each test in a programmable manner. Currently there is setGroup() function in the validator, but it is not reflected to the actual group data. Any future plans on that?

»
11 дней назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

the update began ? i see nothing in my polygon account :\

»
11 дней назад, # |
  Проголосовать: нравится +51 Проголосовать: не нравится

Hopefully that means we'll be getting IOI gyms soon

»
11 дней назад, # |
Rev. 3   Проголосовать: нравится +16 Проголосовать: не нравится

спасибо, три года это ждал <3

P.S. так, а теперь кто тот супергерой, который переделает все ioi-задачи с тренировок по neerc.ifmo.ru/school в нормальные?

  • »
    »
    11 дней назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Возможно, получится автоматизировать этот процесс, попросив жюри дескрипторы в их формате.

»
11 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thank you, the partial scoring is an amazing addition! I've been waiting for this for a while.

  • »
    »
    10 дней назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    Partial scoring has always been an option; it's just a lot easier to use now. Even before, you could instead of this

    quitf(_ok,"whatever");
    

    do this

    quitp(_pc(pointsYouWantPerTestCase-16),"whatever");
    

    to get partial scoring.

    • »
      »
      »
      10 дней назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      Yes, but previously it wasn't possible to require that all tests in a subtask must pass before getting any points. This was a problem because sometimes subtasks with larger constraints contain some small tests (edge cases, for example). With the previous system the contestants would get extra points for those tests without actually solving the subtask.

      Also, the score of a subtask was pretty much dependent on the number of tests in it assuming the checker returned a constant number of points on AC verdict.

      So yeah, the new system is a lot easier and more versatile.

»
11 дней назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Is there a way to assign points for one test group, not just individual test cases?

If I want a subtask with 30 test cases to be worth 20 points, it's not like I can set each test case to have 2/3 points exactly...

  • »
    »
    11 дней назад, # ^ |
      Проголосовать: нравится +43 Проголосовать: не нравится

    You can assign all points to a single test in the group and leave other tests 0. This works if point policy is COMPLETE_GROUP.

»
11 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

If I want to upload the test cases with a .zip file,, Can I assign more than one test case to a group at the same time ?

  • »
    »
    11 дней назад, # ^ |
      Проголосовать: нравится +9 Проголосовать: не нравится

    Use checkboxes to select a group of tests. Also you can use Shirt+click to check a range of tests. After it click "Group" in the header of the table of tests.

»
11 дней назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

Is there something that we can do about tasks with partial scoring? Like the score for a subtask will be the lowest score of all test cases within the subtask?

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

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

»
11 дней назад, # |
Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

Как давать баллы за группу? Есть ли способ лучше, чем ставить Points/Tests баллов за каждый тест этой группы?

Upd. Все понял. Только один тест с баллами делаем, а все оставщиеся тесты будут стоит 0 баллов.

»
9 дней назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

If I want to create my own Problem and add it to personal team contest, how can I do that?

  • »
    »
    9 дней назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    If I do internal trainings in Saratov State U. I do:

    • create special private group for trainings, invite my students into it (once);
    • create mashup containing problems from Polygon/old CF contests;
    • use mashup settings to set start time and other policies;
    • add mashup to the group.
    • »
      »
      »
      9 дней назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      Thanks in advance. Is there any tutorial I can read to create problem in Polygon?

»
9 дней назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Круто, спасибо!

А можете, пожалуйста, подумать о указании группы сразу в генераторном скрипте? Что-то типа gen > $testset1

»
11 часов назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Обнаружил следующие проблемы:

  1. Я поставил галочку "Are test points enabled?" в старой задаче, у тестов указаны группы, но в разделе "Groups points policy and dependencies" ничего нет.
  2. Нельзя поставить 0 баллов за тест. Видимо так задумано, но по-моему все же лучше явно написать 0 баллов.
  3. Если перейти в редактирование отдельного теста, изменить балл и нажать "Save" перенаправляет на пустую страницу.
  4. Если изменить одному или нескольким тестам группу или баллы, то всплывающее окно появляется, но не исчезает при нажатии Save. При этому сами изменения сохраняются.