ACM ICPC Programming Contest Orientation
ACM ICPC Programming Contest Orientation
Ahmed.Arefin@newcastle.edu.au
Based on a Programming Contest Training Workshop by Shahriar Manzoor (Judge, WF Contest) and Rezaul Alam Chowdhury (Faculty, State University of New York at Stony Brook). 11/6/2011 1
11/6/2011
Recap -
11/6/2011
1
2 3
10
8 6
1025
1320 943
4 5 6 7 8
University of New South Wales University of Canterbury Victoria University of Wellington University of Auckland University of New South Wales
5 5 5 5 5
9 10
5 4
885 227
11/6/2011
http://www.sppcontest.org/2011/SP_Results_2011.html#Australia
Prohibited:
Machine readable versions of programs
or data. Calculators, laptop/palmtop computers. Mobile phones and other communication devices.
11/6/2011 8
11/6/2011
Computing Environment
One team, one computer. All the computers run on same operating system (Windows or Linux). All computers are networked together. Programming languages allowed are : C, C++ and Java. Convenient development tools will be provided for each of the languages. Solutions must be submitted to the judges through network using the PC2 judging utility.
11/6/2011 11
Judgement
If you are confident about your solution to a problem, submit it for judgement. Each of your submitted runs is judged as accepted or rejected, and you will be notified of the results with full-screen messages.
12
11/6/2011
Judgement
Accepted Solutions:
Will be notified as Correct.
Rejected Solutions:
Incorrect Output. No Output.
Presentation Error.
Run Time Error. Time Limit Exceeded.
11/6/2011 13
Judgement
Correct:
Your solution must read input from a file specified in the program description and produce output to the standard output. But when the judges test your program that input file contains some additional secret data specially designed to check the correctness of a solution. If the output of your program matches with what the judges expected, your solution is considered Correct.
11/6/2011 14
Judgement
Incorrect Output:
If the output of your program does not match with what the judges expect, you will get an Incorrect Output notification.
11/6/2011
15
Judgement
No Output:
Your program runs but does not produce any output for the judges secret input data.
your program may be written incorrectly. The input file will always be in the current directory. Assuming incorrect input data format. Run time error.
11/6/2011 16
Judgement
Presentation Error:
Possibly your solution produces correct output for the judges secret data, but does not print it in the proper format.
Judgement
Run Time Error:
Your program performs an illegal operation when run on the judges input.
Divide by zero.
Overflow. Domain error.
11/6/2011
18
Judgement
Time Limit Exceeded:
The judges allow your program to produce output for their secret data within a specific time period. If your program fails to do so, you get a TLE notification.
19
Scoring
Teams are ranked according to the most problems solved (judged Correct). Teams who solve the same number of problems are ranked by least total penalty time. Teams who are still tied are ranked by the earliest time of submittal of the last accepted problem.
11/6/2011
20
Scoring
Sample Calculation:
Say a team has submitted the correct solution of a problem at the 120th minute, but made 3 rejected submissions before the correct one. So, penalty = 120 + 20 3 = 180 minutes. Now, if they submit the correct solution of another problem at the 300th minute with 4 rejected submissions before the correct one, then total penalty = (300 + 20 4) + 180 = 380 + 180 = 560 minutes.
(This figure is illustrative, i.e., based on a different penalty value)
11/6/2011
21
11/6/2011
22
Must have knowledge of standard algorithms and the ability to find an appropriate algorithm for every problem in the set. Ability to code an algorithm into a working program. A strategy of co-operation with teammates.
11/6/2011
23
11/6/2011
24
Efficient Programming
Does not mean:
Type as fast as you can. Subsequently spend a lot of time debugging.
Instead:
Think carefully about the problem and all
the cases which might occur. Then program your algorithm, and take the time to ensure that you get it right the first time with a minimum amount of debugging.
11/6/2011 25
To Become a Team
Play a lot of training contests under circumstances which are as close to the real contest as possible. Practice! Practice!! Practice!!!
http://uva.onlinejudge.org/
11/6/2011
26
11/6/2011
27
11/6/2011
28
11/6/2011
29
11/6/2011
30
11/6/2011
32
11/6/2011
33
If the easiest problem of the contest is getting rejected for some silly mistakes then it is often a good idea to redo the problem (by some other member of the team).
11/6/2011
34
11/6/2011
35
11/6/2011
36
11/6/2011
37
38
-------------------------------------------------------------------------------------------------------------------Set by Ahmed Shamsul Arefin (2001- RockFord Programming Contest) http://uva.onlinejudge.org/ http://acm.uva.es/
39
Thanks
External links (From Wikipedia) Official website Official Website of the ACM-ICPC - maintained at Baylor University. ICPC Blogs ACMSolver - maintained by Ahmed Shamsul Arefin (Thats me!) Igor's UVa - maintained by Igor Naverniouk Andrian Kurniady's ICPC event blog - maintained by Andrian Kurniady Codeforces blogs ICPC Training Algorithmist - maintained by Algorithmist Team Steven Halim's Method to solve ACM UVa OJ Problems - maintained by Steven Halim The Stony Brook Algorithm Repository - maintained by Steven Skiena. Programming Challenges - maintained by Miguel Revilla Light Online Judge - maintained by Jane Alam Jan UVa Online Judge Board - maintained by Universidad de Valladolid Online Judge Caribbean training platform - maintained by Xtreme Team CodeChef - maintained by Directi Group Hello-World - maintained by Sang Song Original Slides by: Shahriar Manzoor (Judge, WF Contest) and Rezaul Alam Chowdhury (Faculty, State University of New York at Stony Brook).
40