fcspartakm's blog

By fcspartakm, history, 6 years ago, translation, In English

Hello, Codeforces. Below you can see the improvements in the system Polygon.

A lot of work has been done to simplify the preparation of school tasks, which use groups and points for tests. In the General Information tab, you can enable the points option for each test. This option is enabled points for the whole problem, that is, for tests from all testsets. Let me remind you that test groups can be enabled for each testset separately on the Tests tab.

Points for groups, points policies, dependencies

Points for the test, as well as groups, can be entered in the table with the list of tests, and also specify them when creating a new test. If the group for the test appears for the first time, it will be automatically added to the list of available groups. This list is presented in the table.


Here the problem developer can specify a policy for calculating points for the group, and also specify from which groups the current group depends on. The are two types of the points policies. The first type of the points policy is EACH_TEST, in which case points will be added for each passed test from this group. The second type of the points policy is COMPLETE_GROUP, in which case the points for the group will be added only if all tests from this group have been passed.

Also, you can now add dependencies on other groups for each group. If group A depends on group B, then regardless of which of the tests of group A were passed, you will get 0 points for all tests of group A if at least one of test of group B is not passed.

Solution tags by groups and testsets

In Solutions tab now you can specify a tag for each solution for each existing testset and for each existing group. The interface for working with tags is presented below.

Updates in Invocations

When the invocation is started, all the information about groups, points, dependencies and tag solutions are now taken into account. The points for each group will be calculated according to the group's points policy, as well as according to the groups on which the current group depends. If the solution violates at least one of its tags, the invocation will be highlighted in red, and the information about violation tags is available in detailed invocation report.

Updates in Packages

All information about test groups, points and solution tags added to the problem descriptor on the stage of building packages. Here you can find the example of the descriptor of the school problem.

Thank you for attention! We hope that the described improvements will be useful to you.

  • Vote: I like it
  • +633
  • Vote: I do not like it

| Write comment?
»
6 years ago, # |
  Vote: I like it +4 Vote: I do not like it

That sounds amazing! :)

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

  • »
    »
    6 years ago, # ^ |
    Rev. 2   Vote: I like it +21 Vote: I do not like it

    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 years ago, # |
Rev. 2   Vote: I like it +1 Vote: I do not like it

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 years ago, # |
  Vote: I like it +10 Vote: I do not like it

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

»
6 years ago, # |
  Vote: I like it +51 Vote: I do not like it

Hopefully that means we'll be getting IOI gyms soon

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    6 years ago, # ^ |
    Rev. 3   Vote: I like it 0 Vote: I do not like it

    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 years ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      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 years ago, # |
  Vote: I like it +10 Vote: I do not like it

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 years ago, # ^ |
      Vote: I like it +43 Vote: I do not like it

    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 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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 years ago, # ^ |
      Vote: I like it +9 Vote: I do not like it

    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 years ago, # |
  Vote: I like it +18 Vote: I do not like it

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?

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    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 years ago, # ^ |
      Rev. 2   Vote: I like it 0 Vote: I do not like it

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

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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

  • »
    »
    6 years ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

    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 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

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

»
6 years ago, # |
Rev. 3   Vote: I like it +7 Vote: I do not like it

@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 years ago, # |
  Vote: I like it +8 Vote: I do not like it

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