The University of Alberta Programming Contest is an opportunity for university, college, and high school students in Alberta show off their knowledge and skill in a programming competition.
Students will test their knowledge of algorithms and data structures with a set of programming puzzles requiring problem-solving, programming, math, and teamwork skills.
Two levels of competitions will be held, one for less experienced contestants and one for programming contest veterans.
I will request logins for our Linux machines for those who do not have a CSID (this is different than a CCID). However, to be safe, if you do not have a CSID, I suggest you bring a laptop with the tools to compile and/or run programs written in the supported language of your choice.
Contest Format: Teams of 1 to 3 compete to solve a variety of programming challenges. These are similar to ones found on Open Kattis.
For good practice with the mechanics of this contest, try solving and submitting this easy problem on Open Kattis. Try solving a few more interesting ones for more practice.
Input from standard in, output to standard out (like on Open Kattis).
One computer per team at all times. No switching machines without permission from the on-site contest director. You may use your laptop instead of a lab machine.
The only online resource permitted, apart from the contest pages, are the standard language documentation sites. Links will be provided from the contest page during the contest. You may bring in as much printed material as you would like.
Generally we compile and run programs in a way that is similar to this description, but without Python2 support.
We encourage you to work in teams of three, but you may compete individually or in a team of two.
The contest is free of charge; lunch will be provided to competitors at the U of A location.
The contest itself is a collection of approximately 10 problems to be solved using C, C++, Java or Python 3. Team rankings are decided first by number of problems solved, and second by time taken to solve and number of incorrect submissions.
There will be two divisions: Div I is intended for people with some problem-solving experience and Div II is intended for people with less problem-solving experience.
We have enough help creating problems, so Divs I and II will have different problem sets (with some overlap).
You must register in Division 1 if any team member has completed either CMPUT 204 or CMPUT 275. You may register in Division 1 even if you have not taken these courses.
In each division, the winning team is the one that solves most problems. Ties are broken by penalties.
Penalties are calculated as follows. For each problem that is accepted, you receive M + 20*W penalty points where M is the number of minutes from the start of the contest before the first accepted verdict for this problem and W is the number of incorrect submissions for this problem before the first accepted verdict.