icpc / ccs-specs

Contest Control System specifications
https://ccs-specs.icpc.io
9 stars 9 forks source link

Unsupported ICPC rules modification #150

Open kunyavskiy opened 1 year ago

kunyavskiy commented 1 year ago

Some contest control systems do not round the penalty for each problem to the minute but use some other penalty resolution.

The main option I have seen is to sum submission times with seconds resolution and round down to the minute at the end, but just using penalty as seconds also makes sense.

Also, some contests (e.g. Atcoder rounds) use last-submission time instead of sum-of-submissions.

I think it should be possible to specify these changes in the Contest object, a penlty_time is specified, not forced to be equal to 20 minutes.

So my proposal is, to add the following fields in the contest object:

  1. problem_penalty_resolution it can be either an integer (in seconds or in milliseconds?) or enum (MINUTE, SECOND, etc).
  2. total_penalty_resolution in a similar way
  3. penalty_algorithm which is enum, whether sum or last, maybe some more options if someone comes up with them.

This change is easy to implement in CCS'es - they can just send objects correctly to them not making it configurable, if it was not. And reasonably easy to implement in scoreboard calculation.

Questions need to be accurate with: We should decide if penalty_time is specified in minutes or in problem_penalty_resolution units. Both make sense to me.