kostka's blog

By kostka, 10 years ago, In English

And Codeforces Round 283 (Div. 1).

It wasn't very good round for hackers (especially because of strong pretests), but still — let's take a quick look. (Hacks description will be added later, maybe tomorrow?)

Previous posts can be found here, including div. 2.

Stats

Problem Successful hacks Unsuccessful hacks Other Sum Solutions which can be hacked Accepted solutions All solutions on final tests Hackers efficiency**
497A - Удаление столбцов 54 (41.86%) 55 (42.64%) 20 (15.50%) 129 112 (13.58%) 713 (86.42%) 825 32.53%
497B - Игра в теннис 24 (31.17%) 23 (29.87%) 30 (38.96%) 77 50 (9.92%) 454 (90.08%) 504 32.43%
497C - Распределение партий 0 (0.00%) 1 (100.00%) 0 (0.00%) 1 10 (4.08%) 235 (95.92%) 245 0.00%
497D - Шестерни 0 0 0 0 5 (38.46%) 8 (61.54%) 13 0.00%
497E - Подпоследовательности возвращаются 0 0 0 0 0 (0.00%) 8 (100.00%) 8
  • one of the: INVALID_INPUT, GENERATOR_INCOMPILABLE, GENERATOR_CRASHED, IGNORED, OTHER.

** suggested by marat.snowbear and Yura_Sultonov — hacked solutions / (hacked solutions + solutions which failed on final tests).

Here should be graph.
Here should be graph.

Hacks and possible hacks description

497A - Удаление столбцов

Here should be graph.

497B - Игра в теннис

Here should be graph.

497C - Распределение партий

Here should be graph.

497D - Шестерни

Here should be graph.

497E - Подпоследовательности возвращаются

Wow, here won't be even the graph with tests, because every solution passed :)

Fastest hackers

Problem Time Hacker Defender Hack
497A - Удаление столбцов 0:14:52 VArtem aa2985759 129826
497B - Игра в теннис 1:05:44 KOTEHOK minthe 129863

Because of lack of hacks overall, we listed below everybody with positive score ;)

Best hackers

Hacker Stats Successful hacks Unsuccessful hacks
VArtem +6-0 (600) A: 129826 129828 129829 129908 130043 130130

kawatea +4-1 (350) A: 129850 129882 130061 130145
A: 129846
Alex_2oo8 +5-3 (350) A: 129895 129942 129962 129981
B: 130082
A: 129880 129903
B: 130106
ngfam_kongu +3-0 (300) B: 129930 129960 130138

Gassa +3-1 (250) A: 129834 129839
B: 130077
A: 129952

kuangbin +3-1 (250) A: 129984 130020 130157
A: 130049
Balajiganapathi +3-1 (250) A: 129849 129873 130084
A: 129853
KOTEHOK +3-1 (250)
B: 129863 129913 129923
A: 129898

RomaWhite +4-3 (250) A: 129866 129871 129957
B: 130111
A: 129924 129931
B: 130156
PlayLikeNeverB4 +3-2 (200) A: 129943
B: 130095 130126
A: 129884
B: 130118
Laakeri +2-0 (200) A: 129993 130052

mruxim +2-0 (200) A: 129990 130029

lazyc97 +3-2 (200) B: 129889 129911 129956
B: 129854 129945
gskhirtladze +2-0 (200) A: 130070
B: 129978


el_sanchez +2-0 (200) A: 129922 129947

VeniVidiVici +2-1 (150) A: 129910 130093
A: 130148
Um_nik +2-1 (150) A: 130011 130056
A: 130158
Copymaster +2-1 (150) A: 129934 129968
A: 129987
PERNEKHAN +1-0 (100) B: 130147

laoriu +1-0 (100) B: 130014

eddy1021 +1-0 (100) A: 129996

Nero +1-0 (100) A: 130133

qwerty787788 +1-0 (100) B: 129938

Seemann +1-0 (100) A: 130008

erikgrabljevec5 +1-0 (100) B: 130055

BigBag +1-0 (100) B: 130107

emachaidze +1-0 (100) A: 130119

kraskevich +1-0 (100) A: 129897

izban +1-0 (100) A: 129973

andrew.volchek +1-0 (100) B: 130031

cnjzxy +1-0 (100) B: 130129

seland +1-0 (100) A: 130089

MrDindows +1-0 (100) A: 129979

vilcheuski +1-1 (50) B: 130079
B: 129985
RamTararam +1-1 (50) A: 130073
A: 130058
kmjp +1-1 (50) B: 129953
B: 129870
oversolver +1-1 (50) A: 130051
A: 130071

Best rooms

Room #hacks Hackers
17 7 lazyc97 [3], ngfam_kongu [3], MrDindows [1]
21 7 VArtem [6], qwerty787788 [1]
3 5 RomaWhite [4], seland [1]
20 5 Alex_2oo8 [5]
23 5 Copymaster [2], Laakeri [2], TMandzu [1]
30 5 Balajiganapathi [3], laoriu [1], erikgrabljevec5 [1]
15 4 kawatea [4]
18 4 mruxim [2], SirShokoladina [1], andrew.volchek [1]
26 4 KOTEHOK [3], ztxz16 [1]
32 4 kmjp [1], lovelymoon [1], kraskevich [1], eddy1021 [1]
1 3 PlayLikeNeverB4 [3]
6 3 Gassa [3]
13 3 kuangbin [3]
4 2 oversolver [1], cnjzxy [1]
5 2 Um_nik [2]
8 2 el_sanchez [2]
27 2 gskhirtladze [2]
29 2 BigBag [1], PERNEKHAN [1]
33 2 VeniVidiVici [2]
10 1 vilcheuski [1]
11 1 izban [1]
12 1 emachaidze [1]
19 1 Nero [1]
22 1 Seemann [1]
24 1 RamTararam [1]
31 1 vitux [1]

Best countries

Country #hacks Hackers
Russia 25 VArtem [6], Gassa [3], KOTEHOK [3], Copymaster [2], Um_nik [2], el_sanchez [2], kraskevich [1], oversolver [1], izban [1], SirShokoladina [1], RamTararam [1], qwerty787788 [1], Seemann [1]
Vietnam 7 lazyc97 [3], ngfam_kongu [3], laoriu [1]
Ukraine 7 RomaWhite [4], BigBag [1], MrDindows [1], seland [1]
China 6 kuangbin [3], ztxz16 [1], cnjzxy [1], Nero [1]
Japan 5 kawatea [4], kmjp [1]
Latvia 5 Alex_2oo8 [5]
Georgia 4 gskhirtladze [2], TMandzu [1], emachaidze [1]
India 3 Balajiganapathi [3]
Belarus 3 vilcheuski [1], vitux [1], andrew.volchek [1]
Romania 3 PlayLikeNeverB4 [3]
Finland 2 Laakeri [2]
Iran 2 mruxim [2]
Slovenia 1 erikgrabljevec5 [1]
Kazakhstan 1 PERNEKHAN [1]
  • Vote: I like it
  • +48
  • Vote: I do not like it

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

Hi! Nice stats, I had a similar idea about year ago but didn't come with an implementation.

Wow, here won't be even the graph with tests, because every solution passed :)

There was actually a submit of Petr that failed on some of the early pretests.

Also, all your diagrams are showing only a prefix of a testset (actually only tests till the last one that failed some solution). It would be nice to show instead all testcases and indicate somehow the last testcase like showing the green bar indicating the number of OKs, or in the other words, to add "OK" to the list of verdicts.

The last modification I suggested is very useful for problemsetters because it visually shows if their testcases are strong enough or they are redundant. For example, for a testcase consisting of 80 random cases we'll see that all failed solution fail on first several tests and then successfully pass the rest of random stuff (of course I won't let such testset appear on a real contest :-) ).

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

    Thanks for feedback!

    There was actually a submit of Petr that failed on some of the early pretests.

    Yeah I know, but I thought that won't be interesting at all — I may add it.

    Also, all your diagrams are showing only a prefix of a testset (actually only tests till the last one that failed some solution). It would be nice to show instead all testcases and indicate somehow the last testcase like showing the green bar indicating the number of OKs, or in the other words, to add "OK" to the list of verdicts.

    That is another thing I know, but it follows that my implementation of my script was lazy and changing this thing may be quite problematic — but still — thanks for suggestion I will add it (in new year probably).

    The last modification I suggested is very useful for problemsetters because it visually shows if their testcases are strong enough or they are redundant. For example, for a testcase consisting of 80 random cases we'll see that all failed solution fail on first several tests and then successfully pass the rest of random stuff (of course I won't let such testset appear on a real contest :-) ).

    Yeah, I know this pain — nearly everybody complains that I am using too many tests for my problems (I just want to be sure that the solution which passed is absolutely correct :)).

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

      You know, the key thing I always tell to people is that there is no difference between 5 random tests of size 100000 and 80 random tests of size 100000. The property of a big random test is that almost always the probability of a solution to fail on it is eps or 1 - eps. That means that the solution is almost surely will fail on the first test, or won't ever fail even on thousand of such random tests.

      Of course this is a subject of discussion in every specific case, but your diagrams can easily prove my words in common situation.

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

        I like your reasoning, but there is always room for unexpected, like when chinese setters added testcases during contest against Jacob's solution for Div1 E, because they saw that it does not pass "about quarter" of testcases generated by one of their generators and there were not enough tests in initial testset to break the solution.