2021 High School Programming Contest
Contest Information
The 2021 High School Programming Contest, sponsored and run by George Fox University's ACMW Student Chapter, will be 100% virtual on Saturday, April 10, 2021. We hope that this page holds all of the information necessary for competitors in the competition.
2021 Contest Problems:
 Division I
 Westview (Westview HS)  10 solved, time 1371
 Sunset Team 2 (Sunset HS)  9 solved, time 1226
 Miss Piggy (Sherwood HS)  4 solved, time 596
 Division II
 Sunset Team 4 (Sunset HS)  10 solved, time 1254
 Centuria (Hillsboro HS)  9 solved, time 1110
 ok boomer (North Carolina School of Science and Math)  9 solved, time 1205
 Division III
 Constipated Coders (Sunset HS)  11 solved, time 1948
 Les Hackers (Sunset HS)  9 solved, time 1842
 Nobody (Hermiston HS)  9 solved, time 1850
This year's contest offers a couple different options for schools to be involved in different capacities.
 MonFri, April 49 there will be a noncompetitive contest that will run the whole week. Problems will be available to solve via the contest system. Teachers can use these problems as projects during the week or to give various students additional practice. How you use this week's problems is entirely up to you. Teachers should contact the site director for a classroom set of credentials if you wish to utilize this resource.
 To register teams for the competitive contest on Saturday, April 10th... please use the link above.
 There will be three divisions available this year: DivI (hard college problems), DivII (intermediate to advanced HS problems), and DivIII (easy to intermediate). Choose wisely AND appropriately. For any questions or to request further information please contact the site director, Dr. Brent Wilson, via email at bwilson@georgefox.edu or telephone at 5035542722.
 Division III consists of students who are in the beginning stages of developing their algorithmic problemsolving skills. Div. III teams may have competed before but probably only solved a small handful of problems.
 Division II consists of teams who have been coding for at least a year and may have competed before. They probably would have completed over half of the problems but would have not previously placed 1st, 2nd, or 3rd in a similar division previously.
 Division I is a new and harder division starting in 2021. The majority of the problems will be similar to programming contest problems at the college/university level. This division is truly for the advanced students who want to challenge themselves and "go for the glory!"
 Formatting output
 Control structures (branching, looping)
 Boolean logic
 String manipulation
 All Division III topics
 Multidimensional lists/arrays
 Recursion
 Searching and sorting
 Basic data structures (e.g., trees, graphs)
 All Division II & III topics
 It's a surprise...
 Team 1 correcly solves its first problem in 30 minutes on its first submission for that problem. Team 1 now has a score of 1 (correctlysolved problem) with a time score of 30 (minutes).
 20 minutes later (i.e., 50 minutes into the contest), Team 1 solves a second problem on its first submission. Team 1 now has a score of 2, with a time score of 80 (i.e., 30 + 50).
 Meanwhile, Team 2 submits an incorrect solution for its first problem 15 minutes into the contest. They are able to fix their submission and resubmit it at the 45 minute mark of the contest. Team 2's score now has a score of 1, with a time score of 65 (solution at 45, plus a 20minute penalty for the incorrect submission on the problem).
 If the contest ended at this point, Team 1 would win due to having 2 correctlysolved problems. The time score would only be considered if both teams were tied with 2; in that case, the lowest time score wins.
 2018 Division I (These would be similar to Division II problems as of 2021)
 2018 Division II (These would be similar (slightly harder) to Division III problems as of 2021)
 There are no examples for the newer much harder Division I as of 2021
Schedule
The tentative schedule of events for Saturday, April 10 is as follows:
8:30–9:30 AM  Team checkin via Zoom (link provided later) and systems check 
9:30–10:00 AM  Team briefing via Zoom (link provided later) 
10:00 AM  Contest begins 
3:00 PM  Contest ends 
Team Divisions
A single team shall consist of 2–3 students. There are three divisions: Division I, II, & III.
To assist in determing the proper placement of your teams, problems in each division will be roughly based upon the following:
Division III 


Division II 

Division I 

Contest Logistics & Rules
Each team will work remotely and utilize their own communication channel for discussing and sharing information, code, etc. with all team members. At the start of the contest, each contestant will receive the a set of programming problems via their email. The students will write programs to solve as many of these problems as they can. Students within a single team may distribute tasks among themselves and work cooperatively in any way they wish. IMPORTANT NOTE: Each team will receive one set of login credentials... the contest system (purposefully) does not allow for two or more simultaneous logins from the same account. This is a shared resource that each team must navigate.
As soon as a team believes it has implemented a correct solution to a problem, it should submit their program through the online webbased submission system.
If the team's program does not correctly solve the specified problem on the first attempt, the team is allowed to submit a revised solution. Beyond simply incrementing the count of problems correctly solved, each correct solution will also receive a "time score" which represents the total elapsed time since the start of the contest, plus any time penalties for incorrect submissions. The time scores only come into play when there is a tie for a given count of problems correctly solved.
For example:
Contest problems have a very wide range of difficulty. Division I, II, & III have separate problem sets; however, there is typically some overlap (for example, the same problem might appear as an "easier" problem Division I and as a "harder" Division II problem). Moreover, we try to include at least a couple problems that every team should be able to solve.
Problem sets from the 2018 contest are available for practice purposes:
Supported Languages and Compilers
Our contest judging system supports the following programming languages. Submitted programs will be compiled using the specified compiler flags below:
Language  Version  Compiler  Flags 

Java  8  OpenJDK javac 1.8.0_151  
C  C99  GCC gcc 5.4.0  std=c99 
C++  C++11  GCC g++ 5.4.0  std=c++11 
C#  5  Mono C# mcs 4.2.1.0  langversion:5 
Python  2.7  Python 2.7.12  
Python  3.5  Python 3.5.2 