Beruflich Dokumente
Kultur Dokumente
Shahriar Manzoor
(shahriar_manzoor@yahoo.com )
Southeast University, Dhaka, Bangladesh
Member of Elite Problemsetters Panel
ACM Valladolid Online Judge, Online Contest Wing
(http://online-judge.uva.es/contest/ )
1. Introduction:
Programming contest is probably the fastest expanding co-curricular activity related to
computer science. The main reason is because arranging a programming contest does
not require too much change in infra structure. Generally each type of programming
contest has an annual international event, but teams for these contests are selected via
many preliminary contests which takes place in national level, regional level or sometimes
as online contests. While ICPC (ACM International Collegiate Programming Contest,
Web: http://icpc.baylor.edu ), IOI (International Olympiad for Informatics, Web:
http://olympiads.win.tue.nl/ioi/
and
http://ioinformatics.org/
)
and
Topcoder
(www.topcoder.com) are the three most prominent programming contests of the world,
there are some other web sites which provide adequate training materials for these
contests. These web sites are known as Online Judges to contestants and most of these
sites are prepared based on the rules and restrictions of ICPC the largest programming
contest for University Students.
Some well known online judges are ACM Valladolid Online Judge or UVaOJ
(http://acm.uva.es/p), Zhejiang University Online Judge (http://acm.zju.edu.cn/), Saratov
State University Online Contester (http://acm.sgu.ru) and Ural State University Problem
Set Archive (http://acm.timus.ru). Of these sites the Valladolid Online Judge is the oldest
Online Judge and arguably the most popular Online Judge as well. In started in 1997 and
since then it has become more and more popular keeping pace with the increasing
popularity of programming contest all over the world the world. The following chart shows
how the submission per month (on average) has grown in UVa judge from its beginning.
This site has received about 4089635 submissions from different corners of this world
from its beginning till October, 2005. We will use this huge number of submissions to
analyze different aspects of programming contest. To imagine how huge this number of
submissions is, lets assume there are 8 problems and 60 teams in a programming
contest and all the teams solve all problems with 4 submissions per problems. So the total
number of submissions is 60*8*4=1920. So we can assume (relaxed assumption) that a
five hour programming contest has 1920 submissions in total. So the number submission
of UVa OJ is equivalent to 4089635/1920~2130 real-time programming contests. Before
analyzing the huge data, we will give you a short introduction on online judge.
100000
90000
80000
70000
60000
50000
40000
30000
20000
10000
0
1996
Valladolid OJ Growth
1998
2000
2002
2004
2006
Year
Meaning
AC
Accepted
Detailed Meaning
PercenPercen-tage Percen-tage
tage
(Realtime)
(24
Hour
(24
Hour
Online Judge
Online
Only
with
Judge)
Online
Contest
Problems)
The output of the program 30.36
24.09%
32.55%
matches correct output.
PE
WA
TL
CE
RE
ML
OL
RF
Others
Presentation Error
5.18%
2.20%
3.01%
36.15%
43.81%
37.34%
8.10%
14.16%
8.60%
9.72%
8.49%
8.74%
7.85%
0.84%
5.30%
0.92%
7.01%
1.06%
0.96%
0.38%
0.88%
0.84%
0.64%
0.81%
0.33%
Ignored
Ignored
The last column shows which error occurs at what percentage. So the percentage of
accepted verdict is 30.36 % means of the total verdicts produced by the judge 30.36%
are accepted. Another interesting things from this table is that the principle verdicts
produced by the online judge are Accepted (AC), Wrong Answer (WA), Compile Error
(CE), Time Limit Exceeded (TL), Run Time Error (RE) and Presentation Error (PE). So in
this article we will focus more on these six types of responses. Also these five errors are
more common in realtime contests. Errors like SE, ML, OL, RF etc are generally not
considered in realtime contest or considered within the primary five errors. For example in
most contests Memory Limit Exceed is considered within Compile Error, Output Limit
Exceeded is considered within Time Limit Exceeded or Wrong Answer.
In the next section we will consider different aspects of programming contest based on the
huge submission history of UVa Online Judge. The submission history of UVa Online
Judge is so big that these can actually represent the general characteristics or errors,
successes in a programming contest.
AC
29.33
35.40
37.00
37.79
38.52
39.29
39.96
40.51
40.96
41.51
41.93
42.17
42.48
42.76
42.88
43.14
43.08
43.14
43.34
43.43
43.68
14.35
PE
WA
5.01
5.28
5.12
5.03
4.91
4.59
4.28
4.17
4.06
3.88
3.77
3.65
3.55
3.46
3.41
3.28
3.21
3.14
3.02
2.93
2.88
-2.13
34.92
33.75
33.26
33.01
32.82
32.65
32.49
32.39
32.32
32.25
32.16
32.14
32.09
32.01
31.98
31.90
31.92
31.95
31.86
31.98
31.94
-2.98
TL
7.83
7.31
7.09
7.04
6.98
7.04
7.10
7.09
7.10
7.10
7.10
7.12
7.16
7.15
7.11
7.19
7.25
7.30
7.34
7.41
7.40
-0.43
RE
CE
7.58
7.22
7.00
6.87
6.75
6.56
6.43
6.32
6.27
6.18
6.11
6.12
6.09
6.11
6.15
6.15
6.19
6.18
6.15
6.15
6.19
-1.40
9.39
5.88
5.45
5.21
5.03
4.88
4.78
4.61
4.46
4.31
4.21
4.09
3.95
3.83
3.78
3.67
3.62
3.56
3.52
3.38
3.26
-6.12
The table below shows the same results from a different viewpoints. The second row
shows the different error rates for the people solving less than 50 problems, the fourth row
shows different error rates for the people solving 100 to 149 (inclusive) problems.
Table 3: Based on all problems
Solve Range
0 49
50 99
100 149
150 199
200 249
250 299
300 349
350 399
400 449
450 499
500+
AC
PE
WA
TL
23.76
33.81
35.08
37.02
37.74
39.90
40.86
42.03
41.96
41.82
42.36
4.93
5.57
6.41
4.95
5.01
4.60
4.08
4.30
4.03
3.65
3.53
36.13
34.18
33.59
33.01
32.85
32.41
32.56
32.21
32.16
31.50
31.83
8.36
7.33
6.70
7.07
7.11
6.89
7.34
6.51
6.86
7.10
8.06
RE
8.01
7.54
7.50
6.90
6.83
6.16
5.87
5.97
6.37
5.98
5.42
CE
12.24
6.35
5.62
5.70
5.31
5.17
4.63
4.49
4.05
4.68
4.06
The above tables indicates that with practice acceptance rate increases a lot and also
compile error decreases a lot but surprisingly wrong answer and TL percentage does not
change that much. So does this indicate no matter how experienced you are you can
always get wrong answer?
The above table can have a problem, as people solve more problems they have less easy
problems to solve (assuming that people tend to solve easy problems first) so when
someone has already solved 400 problems he has no more easy problems to solve and
so his acceptance rate can go down a little but as he is more experienced the acceptance
rate does not go down but it remains similar.
In the table below we have put the same results but this time only based on the problems
with low acceptance rate.
Table 4: Based on problems with low (less than 25%) acceptance rate.
Solve Range
0
25
50
75
100
125
150
175
200
225
250
275
300
325
350
375
400
425
450
475
500
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
AC
PE
WA
TL
RE
CE
15.81
19.64
21.05
21.87
22.48
23.05
23.78
24.37
24.82
25.40
25.85
26.09
26.48
26.69
26.98
27.40
27.55
27.70
27.94
27.88
28.08
1.98
2.20
2.27
2.31
2.31
2.26
2.17
2.16
2.11
2.08
2.02
1.95
1.94
1.94
1.94
1.89
1.82
1.77
1.72
1.69
1.65
41.85
42.12
41.99
41.86
41.79
41.85
41.66
41.62
41.67
41.56
41.54
41.63
41.46
41.34
41.30
41.08
40.96
40.99
40.89
41.18
41.32
13.56
12.99
12.39
12.20
12.04
12.08
12.11
12.07
12.01
11.94
11.81
11.74
11.66
11.62
11.48
11.52
11.52
11.51
11.54
11.50
11.38
11.70
11.21
10.90
10.66
10.46
9.99
9.73
9.48
9.41
9.32
9.22
9.18
9.23
9.31
9.30
9.25
9.27
9.28
9.22
9.26
9.28
8.79
6.13
5.76
5.47
5.31
5.14
5.00
4.81
4.63
4.44
4.34
4.23
4.15
4.04
3.95
3.81
3.76
3.69
3.62
3.45
3.28
Table 5: Based on problems with low (less than 25%) acceptance rate
Solve Range
0 49
50 99
100 149
150 199
200 249
250 299
300 349
350 399
400 449
450 499
500+
AC
11.09
17.45
18.98
20.29
20.86
23.09
24.24
24.15
25.61
27.21
27.20
PE
1.71
2.15
2.69
2.37
2.46
2.37
1.94
2.54
2.33
2.09
1.65
WA
TL
RE
CE
41.73
42.48
42.13
41.61
42.17
41.91
42.17
42.99
41.32
38.57
41.04
14.62
13.25
11.85
12.47
12.78
12.43
12.46
11.30
11.42
12.36
13.53
12.43
12.00
12.44
10.79
10.15
9.19
8.92
9.44
9.51
8.89
7.20
11.52
6.88
6.16
6.23
5.77
5.16
5.01
4.92
4.47
5.38
4.24
In the table below we have put the same results but this time only based on the problems
with high acceptance rate.
Table 6: Based on problems with High (more than 50%) acceptance rate
Solve Range
0
25
50
75
100
125
150
or
or
or
or
or
or
or
more
more
more
more
more
more
more
AC
PE
WA
TL
RE
CE
48.43
56.31
57.83
58.92
59.87
61.04
62.52
6.90
7.22
7.18
7.15
7.03
6.72
6.06
23.46
20.59
19.86
19.20
18.88
18.34
17.84
3.38
2.75
2.58
2.50
2.36
2.34
2.30
3.57
3.12
3.04
2.93
2.88
2.78
2.68
8.79
5.55
5.10
4.90
4.67
4.50
4.35
175
200
225
250
275
300
325
350
375
400
425
450
475
500
or
or
or
or
or
or
or
or
or
or
or
or
or
or
more
more
more
more
more
more
more
more
more
more
more
more
more
more
63.36
64.01
64.92
65.49
65.94
66.49
66.88
67.01
67.50
67.71
67.84
68.36
69.16
69.67
5.85
5.65
5.42
5.30
5.19
5.01
4.81
4.63
4.56
4.53
4.36
4.08
3.89
3.80
17.64
17.55
17.17
16.96
16.83
16.56
16.50
16.60
16.52
16.36
16.19
16.00
15.66
15.62
2.22
2.20
2.17
2.13
2.10
2.08
2.08
2.07
2.03
2.06
2.01
2.01
2.08
1.99
2.58
2.53
2.42
2.37
2.37
2.36
2.29
2.28
2.24
2.23
2.29
2.26
2.15
2.14
4.12
4.00
3.86
3.73
3.53
3.49
3.41
3.37
3.22
3.22
3.32
3.32
3.14
2.98
Table 7: Based on problems with High (More than 50%) acceptance rate
Solve Range
0 49
50 99
100 149
150 199
200 249
250 299
300 349
350 399
400 449
450 499
500+
AC
PE
WA
TL
RE
CE
40.81
53.86
53.97
58.33
59.67
62.30
64.56
64.44
65.17
63.15
67.73
6.67
7.47
9.18
7.21
6.66
6.24
6.40
5.01
6.26
5.19
4.31
26.37
21.77
21.18
18.66
19.25
18.25
16.42
17.48
17.74
17.50
15.46
4.03
2.99
2.51
2.57
2.39
2.29
2.12
2.12
2.23
2.10
2.22
4.00
3.37
3.31
3.10
3.02
2.39
2.65
2.44
2.13
2.72
2.33
11.79
5.94
5.38
5.33
4.78
4.51
3.92
3.91
2.84
4.68
3.97
By generating such tables for different types of problems then we can design a
problemset that will give experienced coders less or more advantages (the one that this
required). Also all these can make programming contest more interesting in future. If we
want to give rating to contestants, find out the probability of their winning based on the
problemset and previous history these types of statistics can help. Also coaches can can
find from these statistics whether his team is performing better than average or less than
average. The tables for easy and hard problems are also given below:
Table 8: Based on easy problems
Solve Range
AC
PE
0
25
50
75
100
125
150
175
200
225
250
275
300
325
or
or
or
or
or
or
or
or
or
or
or
or
or
or
more
more
more
more
more
more
more
more
more
more
more
more
more
more
33.13
40.57
42.59
43.53
44.63
45.81
46.87
47.48
48.18
48.83
49.49
49.69
50.02
50.16
4.32
4.65
4.64
4.77
4.81
4.39
4.02
3.97
3.98
3.96
3.89
3.88
3.81
3.76
WA
TL
RE
CE
33.30
31.31
30.40
30.01
29.54
29.14
28.66
28.38
27.95
27.72
27.28
27.36
27.16
27.00
6.63
5.84
5.57
5.39
5.18
5.26
5.28
5.22
5.17
5.07
5.18
5.14
5.22
5.30
6.87
6.32
6.03
5.86
5.74
5.51
5.39
5.30
5.29
5.22
5.08
5.08
5.05
5.08
9.92
6.24
5.77
5.46
5.27
5.12
5.04
4.91
4.73
4.56
4.44
4.27
4.15
4.09
350
375
400
425
450
475
500
or
or
or
or
or
or
or
more
more
more
more
more
more
more
50.31
50.25
50.37
49.99
50.23
50.32
50.74
3.77
3.82
3.77
3.75
3.59
3.45
3.50
27.03
27.14
27.18
27.48
27.37
27.44
27.27
5.08
5.13
5.12
5.20
5.27
5.36
5.28
5.12
5.14
5.06
5.05
5.03
5.12
5.13
4.12
4.01
3.95
3.94
3.89
3.84
3.71
AC
0 49
50 99
100 149
150 199
200 249
250 299
300 349
350 399
400 449
450 499
500+
27.51
39.32
40.64
44.10
45.04
48.07
49.15
50.11
50.82
48.69
48.93
PE
4.13
4.37
6.22
4.11
4.21
4.09
3.95
3.75
4.35
3.87
4.00
WA
35.01
31.79
31.10
30.16
29.55
27.60
27.55
26.57
26.59
27.68
27.92
TL
RE
7.27
6.19
5.00
5.51
5.14
5.07
5.65
4.95
4.65
5.26
5.18
7.37
6.51
6.36
5.59
5.78
5.18
4.82
5.29
5.17
4.71
4.91
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
more
25.14
30.09
31.28
31.50
31.86
30.93
31.31
31.67
31.92
32.06
32.36
32.14
32.07
32.17
31.95
32.08
32.25
32.45
32.53
32.57
32.47
5.04
5.03
5.12
5.13
5.06
5.06
4.18
4.09
3.96
3.61
3.39
3.29
3.16
3.07
3.04
2.86
2.80
2.73
2.67
2.61
2.61
37.92
37.22
36.94
36.83
36.95
37.43
37.62
37.64
37.68
37.94
38.18
38.23
38.54
38.53
38.72
38.67
38.51
38.58
38.44
38.52
38.82
8.56
8.11
7.97
8.19
8.15
8.50
8.76
8.86
8.94
9.25
9.27
9.46
9.55
9.74
9.74
9.92
9.92
10.00
10.20
10.33
10.19
RE
8.51
8.28
7.84
7.63
7.43
7.46
7.48
7.39
7.45
7.41
7.33
7.52
7.52
7.59
7.71
7.89
7.96
7.91
7.99
7.90
7.91
CE
12.38
6.57
5.68
5.68
5.43
5.22
4.26
4.63
4.14
4.42
4.67
CE
8.71
5.78
5.50
5.34
5.23
5.22
5.16
4.95
4.84
4.62
4.50
4.41
4.26
3.94
3.87
3.71
3.66
3.53
3.37
3.26
3.20
AC
PE
WA
TL
RE
CE
20.25
30.00
33.15
29.28
30.36
4.98
5.27
7.11
4.91
6.02
38.70
36.92
35.39
37.41
35.89
9.02
7.58
6.73
8.16
7.75
9.05
8.74
7.30
7.59
7.89
11.26
6.08
5.39
6.24
6.07
250
300
350
400
450
299
349
399
449
499
500+
33.81
32.71
30.29
30.71
32.92
33.73
4.59
3.75
4.38
3.54
3.02
2.59
36.33
37.60
39.85
38.91
36.12
39.12
7.80
8.54
8.78
8.36
10.24
10.59
6.36
6.54
6.28
7.80
8.47
4.80
5.71
6.27
5.04
5.32
4.42
4.34
Country
Ratio
Rank
Country
Ratio
Hong Kong
30524
21
Hungary
2404
Iceland
29610
22
Latvia
2303
Taiwan
27004
23
Slovak Republic
1991
Estonia
21193
24
New Zealand
1978
Singapore
14272
25
Spain
1870
Macedonia
8990
26
Bolivia
1863
Slovenia
8843
27
Czech Republic
1691
Armenia
7143
28
Australia
1665
Croatia
6778
29
Romania
1497
10
Sweden
5362
30
Netherlands
1253
11
Portugal
4544
31
Brazil
1170
12
Poland
4515
32
Finland
1084
13
Switzerland
4230
33
Germany
1050
14
South Korea
4103
34
Russian Federation
1037
15
Bosnia-Herzegovina
3797
35
United States
945
16
Bangladesh
3553
36
Venezuela
892
17
Norway
3316
37
Greece
869
18
Bulgaria
3185
38
Cuba
698
19
Kyrgyz Republic
3155
39
Lithuania
662
20
Canada
2961
40
Belarus
660
The above list is long and it makes us feel good but there are many countries whose
citizens have never submitted to Valladolid Site. Some countries who have never
submitted to Valladolid Site but has more than 5 million population are (The number in
brackets is the population of that country in million): Haiti (8.1), Cambodia, Kingdom of
(13.1), Rwanda (8.4), Papua New Guinea (5.7), Mali (13.4),
Niger (12.4), Guinea (9.2),
Congo, The Democratic Republic of the (58), Syria (18.0), Tadjikistan (6.6), Madagascar
(17.5), Malawi (11.9), Laos (5.8), Cameroon (16.1), Ethiopia (72.4), Sierra Leone (5.2),
Angola (13.3). And it is obvious that the Subcontinent Africa is mostly out of touch of
programming contests. We have made a world map that indicates the growth of
programming contest in different parts of the world. The map is shown below:
The darker the red the more is the popularity. They grey countries have either less than
10 members in UVa or they have never submitted to UVa. Population of different
countries were collected from 2004 World Population Data Sheet [1].
We have already mentioned before that it wont be appropriate to judge the popularity of
programming contest with respect to UVa Online Judge only. So below I represent the
maps based on results of IOI and ACM ICPC.
/*All calculations are done manually for IOI. So if you find any mistake please inform the paper author via
email*/
In the map above a country is colored yellow if in IOI 2005 the best medal obtained by
one or more of its contestants is gold medal, a country is colored silver if the best medal
obtained by one or more of its contestants is silver medal. The same rule applies for the
countries that have won only bronze medals. The green countries participated in IOI 2005
but did not win any medal. The violate countries did not participate in IOI 2005. Of course
there are some countries that are the member of IOI but could not participate because of
not getting Visa or other reasons.
Table 13: Best position of countries in ICPC in last eight years (The IBM Years)
Country
2005
2004
2003
2002
2001
2000
1999
1998
Russia
1.4
Canada
12
21
2.8
China
11
11
11
3.6
USA
17
13
3.8
Poland
10
11
22
11
6.2
Sweden
13
11
11
22
100
Germany
100
27
10
18
29
7.8
Australia
41
15
21
11
11
28
Romania
10
100
100
18
48
15
10
11.4
Korea
13
15
13
11
100
18
100
12
100
27
100
11
14
10
100
12.6
Czech repub
Average
Japan
29
27
11
18
14
18
41
13.6
Belarus
17
21
18
100
22
28
100
16.2
Taiwan
41
56
41
14
39
10
17
17.2
Singapore
29
27
13
41
29
22
18
11
18.2
Hongkong
12
44
30
27
29
100
100
21.2
Southafrica
41
15
13
27
29
22
100
100
21.2
Iran
17
27
56
18
39
100
100
22
Argentina
41
44
12
10
48
22
28
100
22.6
Bangladesh
29
27
56
41
29
11
39
24
24
Newzealand
41
27
43
27
29
39
11
29
24.6
Netherlands
100
100
30
100
29
22
18
100
24.75
Brazil
29
44
30
41
14
100
28
24
25
Spain
41
15
100
100
29
15
100
100
25
Bulgaria
29
44
100
27
100
100
100
17
29.25
Egypt
41
44
30
41
29
39
100
100
36
India
29
44
43
41
29
39
100
100
36.2
100
100
100
100
100
18
29
37.75
Mexico
41
44
56
41
48
39
39
29
37.8
Venezuela
41
44
100
100
100
39
100
100
56
Norway
27
100
100
100
100
100
100
58.75
Estonia
100
27
100
100
48
100
100
100
68.75
Philipines
41
100
100
100
100
100
100
39
70
France
41
100
100
41
100
100
100
100
70.5
Ukrain
100
100
100
100
100
100
100
77.25
15
100
100
100
100
100
100
100
78.75
Indonesia
100
100
100
100
100
100
100
29
82.25
Macedonia
100
100
100
100
100
39
100
100
84.75
Morocco
100
100
100
100
100
100
39
100
84.75
Chilie
100
100
56
100
100
100
100
100
89
Slovak Republic
Kyrgyzistan
/*All calculations in this table have been done manually (By inspecting each ICPC World Finals Rank list
manually). So it is very much possible that this table have some errors. Readers are requested to report
about any error to the author via email. In the map below it is very much possible that some of the countries
which actually have participated in regional contests have been omitted. Because it is virtually impossible to
manually inspect all regional contest rank lists and find out the country of all universities correctly. All data
are collected from ICPC Webpage http://icpc.baylor.edu/ */
In the above table the average is done by taking the best five performance of a country in
the last eight years. For the countries that have not made it to ACM ICPC World Finals
five times, best four performances have been counted. Unlike IOI, ICPC is a university
based contest. So it is very difficult for smaller countries to send a team every year to the
World Finals. Large countries like Russia, USA, China, Canada do not have such
problems because they have many universities that are capable of qualifying and they
also have regional contests dedicated for them. The year in which a country has failed to
qualify for the World Finals is given a rank 100 in the table above. The teams getting
Honourable Mention in the world finals has been given the next possible rank following
the rules for the ranked teams. For example in World Finals 2005 the rank of the last
ranked teams is 29 and there 12 teams are ranked 29. So these 12 teams would have got
place (29-40) if penalty were calculated. So all the teams getting Honorable Mention in
this World Finals have been given rank 41. The countries that have never made it to ACM
ICPC World Finals have been omitted from the above list. So in last eight years teams
from only forty countries have made it to the world finals.
That map below is produced based on the average calculated in the above table. For
example the countries which have a position average less than 5 in ICPC are colored
yellow, the countries which have position average between 5 and 10 (inclusive) are
colored dark blue and so on. The green colored countries have participated in regional
contests of 2005 but probably have never made it to World Finals before. The red colored
countries probably have not participated in ACM ICPC regional contests of 2005 and also
have not made it to world finals before.
team is much harder than winning an IOI gold medal. So this approach may be
discouraging for many programmers to be involved with IOI in large countries.
ACM ICPC on the other hand has its problems in their strategy too as it does not put any
emphasis on countries officially. For example, just look at the statistics of Slovak Republic
or Czech Republic in the above table. They have not made it regularly in the world finals
but whenever they have made it they have performed very well. Commonsense suggests
that they also had good teams on the years they could not qualify for World Finals but
they just did not make it because of very strong neighboring countries. Moreover ICPC is
more uncertain in nature than IOI, a good team can accidentally perform badly in the
world finals, but in IOI almost all the participating countries get a medal. As every
countries dont have a regional contest sites so many dont have chance the participate in
ICPC by going into another country. It is not necessary that each country have separate
problemset for their regional contests and it is logical to have lesser problemset (Say 15)
for all the regional contests combined. This will ensure that a quality problemset is there
for all the regional contests. ICPC has some plus points such as their regional contests
are more an international event than a national event and hence even more prestigious.
b) The IOI is more certain that ICPC because (i) It allows partial marking unlike the 0/1
approach of ICPC. (ii) It virtually has four teams from a single country so it is unlikely that
all of them will do badly. (iii) It requires the contestants to solve only three problems in five
hours which is a lot of time. So anyone with a bad start can make up and as there is no
penalty on submission time so speed of a contestant is not a strong factor.
Although the grading of ICPC is very strict either correct or incorrect, still it has some very
good sides: it gives realtime feedback to contestants about the correctness of their
solution and also it is not bad to give some credit to the contestants for their speed.
So to eliminate the short comings these two major types of contests we need a contest
that (a) Gives partial marks to contestants (b) Gives real time responses to contestants.
(c) Possibly informs the contestant which test cases matches (only the serial of test case)
and which dont. (d) If we dont use separate files for each set of input no information
regarding correctness will be available if the submitted program does not run within time
limit (TL) or crashes (RE) for any one of the inputs. In continuation to this discussion a
new probable approach will be proposed after we see some interesting statistics related to
programming contest.
submission
percentage
50
P
e
r
c
e
n
t
40
30
20
10
0
Year
from 1998
to
2005
October
is decreasing. In earlier stages (in 1998) the cause of the abrupt change is something
unusual, but we dont want to go into details here. In judging the popularity of Pascal we
have discarded all submissions before 2001.
The percentage of submission is decreasing but is the number of submission decreasing?
Total Pascal Submission
Number of Pascal
Submission
80000
70000
60000
50000
40000
30000
20000
10000
0
Year (1998-2005)
The graph above shows that the number of submission is also decreasing but is it enough
to drop Pascal from different contests? Is this drop in submission indicates that lesser
people like Pascal or because Pascal is not being used in different programming contests
remains so people are being discouraged to use it? All these remain in front of us as food
for thought. We are also producing a map that shows the regions where Pascal is still
popular. We will use a new ratio PACR (Pascal acceptance ratio) similar to the ratio ACR
used in the previous section:
Number of Pascal submissions from country C
PACR=
Population of Country C in million
Table 14: Countries with high ACR value
PACR
Rank Country
Rank
Country
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Poland
Ukraine
Russian Federation
Venezuela
Portugal
Hungary
Romania
Taiwan
Kazakhstan
Cuba
Indonesia
South Korea
Canada
Germany
451.57
134.09
131.83
113.78
82.29
80.20
74.93
74.38
47.20
38.67
32.74
30.15
25.55
23.41
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Mexico
Brazil
Vietnam
Czech Republic
Spain
China
Iran
Netherlands
Peru
Morocco
Argentina
Bangladesh
United States
PACR
22.89
22.12
19.67
18.73
13.86
11.39
9.69
9.39
8.95
4.84
4.35
1.95
1.68
No matter how optimistic Pascal lovers are it can really be said from this observation that
compared to C the popularity of Pascal is approaching zero. Because when one will
compare the PACR values with the ACR values of previous section he will find that there
is not comparison after all.
AC
465516
WA|WA
164521
WA|WA|WA
92545
WA|WA|WA|WA
55504
WA|WA|WA|WA|WA
34775
WA|WA|WA|WA|WA|WA
22475
WA
324187
WA|AC
71018
WA|WA|AC
32765
WA|WA|WA|AC
16518
WA|WA|WA|WA|AC
9115
WA|WA|WA|WA|WA|AC
5330
CE
104952
AC|AC
49743
CE|CE|CE
20049
CE|CE|CE|CE
11566
CE|CE|CE|CE|CE
7260
CE|CE|CE|CE|CE|CE
4650
TL
76806
CE|CE
39732
TL|TL|TL
14436
RE|RE|RE|RE
7947
RE|RE|RE|RE|RE
4775
RE|RE|RE|RE|RE|RE
2962
PE
73526
TL|TL
30830
AC|AC|AC
14203
TL|TL|TL|TL
7474
TL|TL|TL|TL|TL
4172
TL|TL|TL|TL|TL|TL
2433
RE
62764
RE|RE
27242
RE|RE|RE|
14158
AC|AC|AC|AC
6397
AC|AC|AC|AC|AC|
3498
AC|AC|AC|AC|AC|AC|
2161
Table 16: A table for most popular responses ending with an AC or having length 6
Popularity
1st
2nd
3rd
4th
5th
6th
Monograph
Frequency
Di-graph
Frequency
Tri-graph
Frequency
Tetra-graph
Frequency
Penta-graph
AC
465516
WA|AC
71018
WA|WA|AC
32765
WA|WA|WA|AC
16518
WA|WA|WA|WA|AC
CE|AC
18099
CE|CE|AC
4685
CE|CE|CE|AC
1750
CE|WA|WA|WA|AC
TL|AC
10612
TL|TL|AC
3540
CE|WA|WA|AC
1636
CE|CE|CE|CE|AC
PE|AC
9213
CE|WA|AC
3511
TL|TL|TL|AC
1340
TL|TL|TL|TL|AC
RE|AC
8205
RE|RE|AC
2620
RE|RE|RE|AC
1158
TL|WA|WA|WA|AC
TL|WA|AC
2423
TL|WA|WA|AC
1114
RE|RE|RE|RE|AC
Frequency
Hexa-graph
Frequency
9115
842
827
618
573
563
WA|WA|WA|WA|WA|WA WA|WA|WA|WA|WA|AC CE|CE|CE|CE|CE|CE RE|RE|RE|RE|RE|RE TL|TL|TL|TL|TL|TL CE|WA|WA|WA|WA|WA
22475
5330
4650
2962
2433
2092
Percentage
0 AM 3 AM
11.37%
3 AM 6 AM
3.9%
6 AM 9 AM
4.41%
9 AM - 12 PM
12.44%
12 PM - 3 PM
16.59%
3 PM 6 PM
18.29%
6 PM 9 PM
15.54%
9 PM 0 AM
17.44%
Figure: The submission percentage at different time slot and the corresponding pie
chart.
to 15 (3 PM) GMT the judge remains most busy and from 21 (9PM) to 24 (0 AM) GMT the
judge remains least busy.
Actual Data
Time (GMT)
Percentage
O AM 3 AM
8.21%
3 AM 6 AM
11.74%
6 AM 9 AM
13.70%
9 AM 12 PM
13.52%
12 PM 3 PM
16.87%
3 PM 6 PM
15.99%
6 PM 9 PM
11.84%
9 PM 0 AM
8.14%
So based on the 135 online contests of UVa Online Judge it is found that given a team will
finally get a problem accepted, its probability of getting it accepted in the first submission
is 44.16%. The percentage of informed response is 80.89 % and uninformed response is
18.14 %. But more important is the fact that percentage of informed errors is 36.73% and
uninformed errors is 18.14%. So their ratio is roughly 2:1.
53.622455 53.622455
72.686846 19.064392
82.875069 10.188222
88.920198 6.045129
92.631811 3.711613
94.996147 2.364337
96.398459 1.402312
97.367089 0.968630
98.093561 0.726472
98.602091 0.508531
24358
33018
37646
40392
42078
43152
43789
44229
44559
44790
11
12
13
14
15
16
17
18
19
20
98.908090
99.119428
99.317556
99.493671
99.583930
99.667584
99.749037
99.806274
99.856907
99.894331
0.305999
0.211337
0.198129
0.176114
0.090259
0.083654
0.081453
0.057237
0.050633
0.037424
44929
45025
45115
45195
45236
45274
45311
45337
45360
45377
57.798897
73.200383
81.574807
86.649237
89.991738
92.320007
93.961767
95.179977
57.798897
15.401486
8.374425
5.074429
3.342501
2.328269
1.641760
1.218210
459607
582077
648669
689020
715599
734113
747168
756855
11
12
13
14
15
16
17
18
97.313449
97.749197
98.084969
98.359874
98.589884
98.782419
98.942256
99.070025
0.543648
0.435749
0.335772
0.274905
0.230010
0.192534
0.159837
0.127769
773820
777285
779955
782141
783970
785501
786772
787788
9
10
96.086184
96.769800
0.906206
0.683616
764061
769497
19
20
99.189243
99.284441
0.119218
0.095198
788736
789493
So in current contest system it wont be illogical too put a bar of 12-15 submissions
maximum per each problem.
1
118.14
-1
-1
-1
-1
-1
-1
-1
-1
-1
2
86.97
153.74
-1
-1
-1
-1
-1
-1
-1
-1
3
65.15
115.13
175.25
-1
-1
-1
-1
-1
-1
-1
4
57.68
94.15
140.05
194.43
-1
-1
-1
-1
-1
-1
5
42.68
71.53
105.63
149.55
201.27
-1
-1
-1
-1
-1
6
36.28
59.17
85.91
118.32
158.05
203.82
-1
-1
-1
-1
7
26.66
48.59
72.31
98.74
133.64
170.93
225.82
-1
-1
-1
8
27.13
46.79
70.47
99.49
130.71
167.03
204.06
261.76
-1
-1
9
26.54
49.38
65.38
85.54
106.23
132.15
161.85
201.54
247.23
-1
10
18.00
22.75
42.25
55.75
69.50
108.00
130.00
147.75
198.75
244.50
9
27.16
48.74
64.58
84.05
112.32
140.16
169.37
220.84
275.11
-1
10
22.29
38.86
58.57
73.00
92.00
128.57
157.14
179.00
231.86
268.57
9
26.30
52.40
69.40
91.10
109.00
133.20
159.60
198.50
240.70
10
18.00
22.75
42.25
55.75
69.50
108.00
130.00
147.75
198.75
1
126.75
-1
-1
-1
-1
-1
-1
-1
-1
-1
1
2
3
4
5
6
7
8
9
1
142.20
-1
-1
-1
-1
-1
-1
-1
-1
2
90.82
161.05
-1
-1
-1
-1
-1
-1
-1
-1
3
69.15
120.56
183.93
-1
-1
-1
-1
-1
-1
-1
4
59.17
97.29
146.05
204.35
-1
-1
-1
-1
-1
-1
5
44.96
75.65
112.37
157.59
211.70
-1
-1
-1
-1
-1
6
37.69
62.07
90.65
125.10
166.17
216.90
-1
-1
-1
-1
7
27.90
49.50
75.34
102.82
139.19
180.86
241.79
-1
-1
-1
8
27.19
47.17
71.66
103.41
136.71
174.49
217.81
275.27
-1
-1
3
75.94
134.56
202.03
-1
-1
-1
-1
-1
-1
4
68.07
111.58
164.48
225.78
-1
-1
-1
-1
-1
5
49.83
83.30
121.21
169.65
226.49
-1
-1
-1
-1
6
43.81
71.36
103.27
142.92
187.72
242.46
-1
-1
-1
7
28.06
52.92
78.96
108.10
146.02
186.82
244.73
-1
-1
8
23.90
44.06
67.08
95.38
119.60
155.83
192.29
254.58
-1
10
-1
-1
-1
-1
-1
-1
-1
-1
-1
244.50
29292 * x
* 100 = w
29292 * x + 24317 * 127.3474
or, 2929200 x = 29292 wx + 3096707 w
or, 2929200 x 29292 wx = 3096707 w
or, x ( 2929200 29292 w) = 3096707 w
or, x =
3096707 w
2929200 29292 w
Table 14: Judge response statistics ignoring first four uninformed responses and allowing
maximum eight informed errors
Submission Cumulative Acceptance Cumulative Submission Cumulative Acceptance Cumulative
Serial
Acceptance Percentage Number of Serial
Acceptance Percentage Number of
Percentage
Acceptance
Percentage
Acceptance
1
2
3
4
5
6
7
8
9
63.077600 63.077600
80.061640 16.984040
88.453495 8.391855
93.021464 4.567969
95.601541 2.580077
97.076500 1.474959
97.932856 0.856357
98.507430 0.574573
98.901486 0.394056
28653
36368
40180
42255
43427
44097
44486
44747
44926
10
11
12
13
14
15
16
17
18
99.225096
99.392405
99.509081
99.643368
99.720418
99.795267
99.843698
99.876720
99.898734
0.323610
0.167309
0.116676
0.134287
0.077050
0.074849
0.048431
0.033021
0.022014
45073
45149
45202
45263
45298
45332
45354
45369
45379
15. Conclusion:
Programming contest has been around for a long time and has been quite successful in
creating programmers of the highest quality. It has its critics and it has its limitation in its
judging system surely, but still it is better than many widely used systems. It is important to
note that the subject of programming contests is human being and so its accuracy cannot
be maximized by calculating the derivative of a mere expression. As we are humans and
not robots so we are bound to make some mistakes. No matter how long we practice our
accuracy will not be more than a certain limit and while making rules we need to take into
account our average properties as human problem solvers. That is why the goal of this
paper is to present the huge database of Valladolid Online Judge in different ways that
may help the decision makers to shape up programming contest in a better way. Yes, the
gives the model of a new contest but that is not the only conclusion that can be drawn
from these statistics. The paper in inclined towards ICPC because it is based on an ICPC
type Online Judge and as the author believes that realtime response is a must ina
programming contest. But the model that is good for college students should be good for
university students and vice versa, may be the duration and the team size can remain
different as it is now. Many new aspects of programming contest has been described by
Cormack et. Al. [3] in detail and none of these actually contradicts the ideas presented
here.
The problem with an ideal programming contest model it that it needs to fair but it also
needs to be simple because the same model will be followed in regional (ICPC) and
national contests (IOI). Also some of the models are extremely popular so it will take some
time to replace them and all the online judges are written in the existing rule and it will take
some time to change them as well. Many regions and nations are still struggling to adopt
the present simple contest models so the new more complex models can be impossible
for them to follow. So a new full proof system can first be followed in international level
and then in course of time poured into national and regional level.
16. References:
[1] World Population Data Sheet 2004 of the Population Reference Bureau, Link:
http://www.prb.org/pdf04/04WorldDataSheet_Eng.pdf
[2] Yakovenko B., 50% rule should be changed.
[3] Cormack G., Kemkes G. , Munro I., Vasiga T., Structure,Scoring and Purpose of
Computing Competition
Acknowledgements:
Prof. Miguel A. Revilla:
He is the main responsible person of UVa Online Judge, official archivist of ACM
International Collegiate Programming Contest (ICPC), CII (Competitive Infrastructure
Initiative) Member. He is a very busy person but still he managed time to supply me the
data from UVa site that I requested for.
Prof. Gordon V. Cormack:
For his suggestion to write something based on the statistics of UVa Online Judge. His
comment on the ideas presented in this article was, All of those questions look interesting
to me. I'm not sure which to focus on. You may notice interesting things once you
start to dig. The bold part of his suggestion proved very much true while the author was
digging through the statistics and at one stage so many new things came up that the
author was worried about the completion of this paper.
Carlos M. Casas Cuadrado:
He is a very important member of Valladolid Online Judge and maintains the problemset
section very efficiently.
Derek Kisman:
Derek Kisman is a world class problem setter (ACM ICPC World Finals Judge and former
ECNA judge) but he has also helped the author to produce many good and error free
problems by writing alternate solutions and providing useful suggestions.
Monirul Hasan:
Before this guy left for Canada for higher studies, he and the author were the main
persons to set problems for many programming contests of Bangladesh. He is still a
member of Elite Problem setters Panel of UVa Online Judge.
Special thanks also goes to Prof. William B. Poucher, Prof. M. Kaykobad, Prof. Abul L.
Haq, Md. Sajjad Hossain, Miguel Revilla (Junior), Syed Monowar Hossain, Fernano P.
Najera Cano, Jimmy Mrdell, Rujia Liu, Md. Kamruzzaman, Igor Naverniouk and Joachim
Woulf for their encouragement and support in different programming contests.