oolimry's blog

By oolimry, history, 4 months ago, In English

The purpose of pretests is so that the judge queue is not be overloaded during the contest. At first I thought this means that the judge never runs the systests until the end of the contest. However, after setting a few contests, I realize that the judge actually grades the systests during contest time, and as problemsetters we can even see in real time who will FST by the end of the contest.

I assume this means that the grader prioritizes grading pretests and when it has "free time" it grades the systests. Of course, this is a good system to prevent the judge queue from clogging if it ever becomes too long. However, for the four contests I've got the chance to observe the grading process, the systests does not seem to have any backlog, and almost all have been graded except those which just came in. This is probably because almost everyone uses multitests now and because of that we can usually fit the systest into the pretest.

Which brings me to my suggestion: if the grader is free enough to grade systests, should it report the verdict to the contestants? If I were to imagine, it would go something like this. First the grader prioritizes grading pretests and reports the result to the user. If it is free it grades systests and reports the result to the user sometime afterwards. If the queue is bad, it could mean that you would get your systest verdict much later than your pretest verdict.

I think the biggest benefit is preventing FST, which are not only very frustrating and to some extent luck based (whether the problemsetter decided to put a specific case in pretests or not). However, some problems I can think of:

  • There will be no guarantees how soon you might get your systest verdict, and is it fair that some will get know they FST after 1 minute and some will know they FST after 15 minutes?
  • How do we handle hacks, do we grade new testcases immediately? And do we FST all who fail?
  • This probably is not good for those who enjoy hacking

What are your thoughts on this?

Read more »

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

By oolimry, history, 22 months ago, In English

1428A - Box is Pull

Setter: bensonlzl
Prepared by: errorgorn

Hint 1
Hint 2
Solution
Code (C++)
Code (Python)

1428B - Belted Rooms

Setter: oolimry
Prepared by: oolimry

Hint 1
Hint 2
Solution
Other comments
Code (C++)
Code (Python)

1428C - ABBB

Setter: errorgorn and shenxy13
Prepared by: errorgorn and oolimry

Hint 1
Hint 2
Solution
Other comments
Code (C++)
Code (Python)

1428D - Bouncing Boomerangs

Setter: bensonlzl
Prepared by: bensonlzl

Hint 1
Hint 2
Solution
Code (C++)
Code (Python)

1428E - Carrots for Rabbits

Setter: errorgorn
Prepared by: errorgorn
Orz proof by: oolimry

Hint 1
Hint 2
Solution
Other comments
Code (C++)
Code (Python)

1428F - Fruit Sequences

Setter: bensonlzl
Prepared by: dvdg6566

Hint 1
Hint 2
Solution
Other comments
Code (C++)
Code (Python)

1428G1 - Lucky Numbers (Easy Version), 1428G2 - Lucky Numbers (Hard Version)

Setter: oolimry
Prepared by: oolimry

Hint 1
Hint 2
Hint 3
Hint 4
Solution
Code (easy version)
Code (hard version)

1428H - Rotary Laser Lock

Setter: bensonlzl and oolimry
Prepared by: bensonlzl

Hint 1
Hint 2
Solution
Code

Read more »

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