How to get the number of pretests in a codeforces problem?

Revision en3, by z4120, 2019-10-05 16:45:13

Is there any way to get the number of pretests of a problem?

I tried using this code

Code

(fetch every submissions, check if there's any skipped/hacked solution then the number of pretest is the number of passed test of that submission, otherwise estimate the number by getting number of passed tests of solutions that fail on pretests/main tests of contestants)

However there are some problems:

  • It's not possible if there's not enough submission for that problem. (For instance, running the code above says that there are at least 1 and at most 138 pretests for problem 566E)
  • It's slow. (This can be partially avoided by fetching only solutions in contest, given that there are currently 19528 submissions but only 3585 in-contest ones)
  • The code will not work when there are cheaters (for example this submission is listed as "skipped" but there's a "wrong answer" test, however it's not because the user submit another one but it's likely because the user cheated, according to https://codeforces.net/blog/entry/58038) This can be work around by fetching the submission page to see if there's any failed test (there's no indication in the API result.

Background: I'm trying to fix the userscript that displays only pretest verdict in virtual participation. A huge bug is that it assumes that double clicking an entry in the standing table will show [pretests] or [main tests] depends on whether the test is a pretest or a main test. However it isn't the case, as can be seen in https://codeforces.net/contest/566/standings (turn on "show unofficial", then double click the entry for problem C of user hogloid, you can see "Wrong answer on test 1 [main tests]", which is obviously wrong.

Tags pretest, virtual participation, api

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en12 English z4120 2019-12-01 13:32:15 14753
en11 English z4120 2019-11-10 10:50:22 1527
en10 English z4120 2019-10-31 10:01:17 41
en9 English z4120 2019-10-31 09:51:58 4454 Fix small bug, rewrite post
en8 English z4120 2019-10-26 18:28:19 130
en7 English z4120 2019-10-26 18:21:49 3536 Fix userscript
en6 English z4120 2019-10-15 17:00:39 16469
en5 English z4120 2019-10-07 19:48:43 244
en4 English z4120 2019-10-07 19:35:09 225 New workaround for a problem
en3 English z4120 2019-10-05 16:45:13 583
en2 English z4120 2019-10-05 12:48:27 18 Add code formatting
en1 English z4120 2019-10-05 08:03:32 2964 Initial revision (published)