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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

That sounds amazing! :)

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

  • »
    »
    6 лет назад, # ^ |
    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.

»
6 лет назад, # |
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?

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

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

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

Hopefully that means we'll be getting IOI gyms soon

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

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

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

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

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

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

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

  • »
    »
    6 лет назад, # ^ |
    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.

    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится +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.

»
6 лет назад, # |
  Проголосовать: нравится +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...

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +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.

»
6 лет назад, # |
  Проголосовать: нравится 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 ?

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +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.

»
6 лет назад, # |
  Проголосовать: нравится +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?

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

    Hey all!

    I'm just wondering if there has been a solution for this yet? I'm sorry if I've missed it!

    I'm trying to make an interactive question in Polygon with the final subtask as a partial scoring subtask, where the score for the subtask depends on the maximum number of queries amongst all testcases in the subtask (and the score can be any value from 0 to 20).

    I've currently tried to use the quitf(_pc(X), "response") and quitp(_pc(X-16),"response"), but both of them seem to give me the full 20 points regardless of the number of queries used. Is there an alternative method to do this?

    Any help would be appreciated!

    Thanks!

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

      Have you figured this out eventually? I can't get it working. Maybe Polygon/Gym doesn't support actual partial scoring.

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

        Unfortunately, no :(.

        For our contest, we eventually just split it into a series of subtasks, each with fixed limits for number of queries. Hopefully this can get added sometime :)

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

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

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

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

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

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

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

  • »
    »
    6 лет назад, # ^ |
      Проголосовать: нравится +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.
    • »
      »
      »
      6 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

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

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

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

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

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

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

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

@fcspartakm Please check this issue --

I am seeing the "Groups points policy and dependencies" place like above. Though I added groups, it is not being shown there.

Another problem is, when I add points and click "Set points" it works fine, and reloads page. But when I set groups and click "Set groups", nothing happens, I needed to refresh page manually to see the group assigned. Also, when did with multiple test files, it sets group to only one test. :|

Aslo when I add test manually with "Add Test", if I assign Group then nothing happens after clicking "Create". But works with only points set.

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

Dear MikeMirzayanov, till now no IOI styled competitions have been held :( Will we have such competitions in the near future?