The Alberta Collegiate Programming Contest (ACPC) is an opportunity for university and college students in Alberta to excel in a programming competition.

Students will test their aptitude and their knowledge of computer science against a set of programming puzzles requiring problem-solving, programming, math, and teamwork skills. Teams are ranked according to the number of problems solved within five hours. The event will begin on Saturday, November 14th with a warm-up practice, followed by a five-hour competition to decide the winners.

The ACPC is sponsored by Arcurve who provides a platform for the next generation of computing professionals to pursue excellence.

Contest Links

A practice contest is provided to allow contestants to become familiar with the Kattis judging system:

Practice contest.

Below are the links to the contest for each division.

Division 1 Contest.

Division 2 Contest.

Open Division Contest.

Make sure you are doing the contest for the division you registered under on Eventbrite.

Prizes Sponsored by
Division 1
First Place $1000
Second Place $700
Third Place $400
Division 2
First Place $250
Second Place $200

Anyone is welcome to compete.

In order to be eligible for prizes, you must be:

  • Enrolled in a post-secondary institution/high school in Alberta as an undergraduate/full time graduate student.
  • If you are a post secondary student, you must register with your school email and university ID
  • If you are a high school student, you must register with your student ID
  • In a team of up to three members
  • Participating in the same division as everyone else on your team
  • Please note: high school students are STRONGLY encouraged to register in Division 2.
  • (Extra requirement for Division 2) Students who have not taken (or not currently taking) a data structures course, i.e. CPSC 319/331


Register here. The registration deadline is on 10:00pm on Thursday, November 12th.

Time and Location

The contest is set for Saturday, November 14th, 2020.

The entirety of the contest will be held online. A streaming platform will be used for broadcasting presentations. Certain channels of the CPC Discord wll be closed during this time. Please stay tuned for important links to the presentations. The currently planned schedule is as follows:

10:30AM - 10:45AM

  • Opening Contest presentation. We will go over general contest rules and procedures.

10:45AM - 11:30AM

  • Practice contest to help familiarize competitors with contest system

11:30AM - 12:00PM

  • Lunch break

12:00PM - 5:00PM

  • Official contest start

5:00PM - 5:20PM

  • Solutions to Problem Set

5:20PM - 6:20PM

  • Presentation by Arcurve
  • Small Bag Prizes will be drawn
  • Announcement of Div 1 & 2 winners and presentation of prizes
  • Arcurve SWAG prize draw

Contest Details & Rules

Teams of up to three students enrolled in an Albertan educational institution, meeting the criteria linked to in the "Eligibility" section above may compete for prizes. Teams not meeting these requirements may participate as guests. The contest is free of charge for entry.

The contest itself is a collection of 8-10 problems to be solved using C, C++, Java, and Python. Team rankings are decided first by number of problems solved, and second by time taken to solve.

During the contest, the following rules are in effect:

  • No collaboration is allowed with anyone outside of your team members when working on/discussing the contest problems.
  • All contestants can work on their personal computer. Any team member can submit a solution to Kattis.
  • Resource access is restricted to standard library and language documentation, the contest website, and the I/O cheat-sheet (linked below)
    • External libraries are not allowed. For example, the C++ header '#include <math.h>' is allowed since it is a part of the language's standard library. However, headers in an external C++ library such as Boost are not allowed.
  • Coding reference material
    • Each team is allowed one coding reference "document"
    • There is no maximum page limit for the coding reference document
    • Document submission options:
      • Each option will count as one document (i.e. you can choose either i or ii)
      • Teams creating their own document (option i) cannot share their document with other teams or people within the contest
    • Create your own
      • Each team can make their own document and email it to cpc.uofc@gmail.com. You can also host the files on a private GitHub and share it with the club executives. Make sure all reference code is committed by the date in the point below.
    • Reference a public, pre-existing code library
      • You are allowed to reference an already available public GitHub code library (i.e. created by official coaches from a university), with proof of permission. The link to the repository must be emailed to cpc.uofc@gmail.com, along with proof of permission from the repository owner.
    • It must be emailed to at least cpc.uofc@gmail.com or have the repository shared with us at least 12 hours before the contest start date (by 10:30PM, November 13th).
    • Important note: For GitHub reference material, code committed only at least 12 hours before the contest can be used.
  • Aside from the two main points above, all other references materials on the internet are not allowed
  • Use of electronic devices other than the computer is strictly prohibited
  • Teams are ranked according to which has solved the most problems, with ties broken by time taken to solve

The main contest will start at 12:00PM MDT on Saturday, November 14th. The practice contest starts one hour before the main contest and will last 45 minutes. Participation in the practice is optional but recommended for new competitors.

Any disrespectful behavior towards the Competitive Programming Club, our sponsors or participants can result in disqualification from the event.

Permissible Internet resources:

If your code is found to be plagiarized or taken from an internet resource other than the permissible ones listed above, you will be immediately disqualified and banned from future competitions.
Preparation & Strategy

If you want a leg up on the competition, there are some preparation opportunities available:

  • In Calgary, the Competitive Programming Club meets every Wednesday from 18:00 - 21:00 remotely through a youtube stream for coaching & practice
  • The UVa Online Judge contains many programming puzzles for self-directed practice

Some time-tested strategies for during the competition:

  • Read all the problems, identify the easy ones, and solve them first
  • If you're having trouble identifying easy problems, look at the scoreboard to see what others are solving
  • Computer time is very valuable, so sketch out your program on paper before coding it (unless it's trivially simple)
  • Debugging a program on paper is more effective than sticking print statements everywhere, 99% of the time
  • Come up with your own test cases for your program, especially edge cases