About
Posted by Noah Weninger

The University of Alberta Programming Contest is an opportunity for university, college, and high school students in Alberta to 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 those with less experience to algorithms and one for students who have had prior exposure to contests or are in their later years of university.


The contest is free of charge; lunch will be provided to competitors at the U of A location.

Time and Location
Posted by Answer

Saturday, March 15, 2025.

Location: University of Alberta Main Campus - 8th Floor of the Donadeo Innovation Center for Engineering (DICE).

NOTE THE NEW LOCATION THIS YEAR!

Schedule

  • 10:00-10:45 Contest Warm-up
  • 11:00-3:00 Contest
  • 1:00 Pizza Served
  • 3:10 Award Presentation and Solution Discussion

You should bring your own laptop with the tools to compile and/or run programs written in the supported language of your choice. No computers will be provided.


Contest url: https://uapc25.kattis.com/contests
You must log in with the same email you used to register for the contest. If that email was not yet associated with a Kattis account, one will be created for you.

Previous Contests
Posted by Noah Gergel

UAPC 2024 Links

All Contests

This link is for the practice contest, Division 1, Division 2, and Open Division. Open Division participants can just "join the contest" themselves. Official Div 1 and Div 2 participants must log in using the email address provided when they registered.


UAPC 2023 Contest Links (last year)

Warmup Contest

Division 1 Contest Link

Division 2 Contest Link

Open (Unofficial) Contest Link


Past UAPC Information

Solutions, scoreboards, Open Kattis links, and data for past UAPCs

Other Information
Posted by Ian DeHaan

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.

We will assume everyone knows how to submit and get a problem accepted on Kattis. So ensure you try it out before you attend.


Each team is limited to using one computer during the contest. You are not allowed to switch computers during the contest without permission from the on-site contest director.


You may use any online resource you would like provided you treat it as a read-only resource. No posting questions to discussion forums, no sending emails, etc.

Misc. / FAQ
Posted by Joseph Meleshko

  • Can I/we compete remotely?
    Yes, but U of A students and high-school students in the area are strongly encouraged to show up in person. Others are welcome too. Prizes will only be available to those who participate in person.
  • Which languages are supported?
    The ones listed here: The ones supported at official ICPC contests:
    C++, Python 3, Java, C, Kotlin
Register
Posted by Grayden Price

Register using the following Google Form.

Cutoff is 7pm on Thursday, March 13.


We plan on running an Open Division (all Div 1 & Div 2 problems) for non-official contestants, registration is not required. You can simply join the Open Division from the contest URL (the contest will be listed here on the contest date)..


Email zacharyf@ualberta.ca if you have further questions.

Perks
Posted by Parsa Zarezadeh

Free Pizza


Prizes
Posted by Jason Cannon

There will be cash prizes for the top three teams in each division. All amounts listed below are the totals per team.

Division 1
  • First Place - $750
  • Second Place - $500
  • Third Place - $250
Division 2
  • First Place - $450
  • Second Place - $300
  • Third Place - $150
Grade School
  • The highest placing grade school team that does not place in the top 3 of their division will receive $100. If there are grade school teams in both divisions 1 and 2 that would be eligible, the decision on which team receives the prize will be left to the contest organizers.
Rules
Posted by Johnson Wu

We encourage you to work in teams of three, but you may compete individually or in a team of two.

There will be two divisions: Division 1 is intended for people with some problem-solving experience and Division 2 is intended for people with less problem-solving experience.


Division 1 Eligibility Criteria
We will adopt the same cutoffs as the official ICPC. See here for their eligbility flowchart. Anyone who is "eligible" (i.e. passes the flowchart) can register for Division 1: all team members must qualify. Exception: Grade school students are always eligible for Div 1.


If you fail the criteria but only by "a bit", you can email the contest organizer (Zac Friggstad) to ask for an exception. For example, perhaps your studies were delayed or you have spent a long time in internships.


Division 2 Eligibility Criteria
The eligibility criteria has been drastically simplified. Simply put, to be eligible for Div 2 all team members must pass the basic eligibility criteria for Div 1 and no team member should have won any prize money in a previous UAPC/ACPC.


For questions about eligibility, email the contest organizer (Zac Friggstad).


In each division, the winning team is the one that solves the most problems. Ties are broken by penalty points.


Ranking

A problem is considered solved if one of your team's submissions for that problem receives a judgement of Accepted from the judging platform. Participants that are not familiar with the judging platform are strongly encouraged to try a few practice problems themselves to understand how judgements are given, see the "Other Information" box for details.


There is no partial credit, any judgement apart from Accepted means the problem is not yet solved by your team. You may resubmit as many times as you would like.


The team that solves the most problems wins. Ties are broken by the team with the least penalty points.


Penalties points 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 your first Accepted verdict for this problem and W is the number of incorrect submissions for this problem before your first Accepted verdict.


See the 2023 Division 2 scoreboard for an example of how ranking is done. More details about scoring can be found here.


Scoreboard Freezing
The scoreboard typically "freezes" when there is 1 hour remaining in the contest. You are able to see the verdicts for your own submissions but the scoreboard will not update apart from showing a submission count from other teams during the final hour (i.e. you will not know if it was accepted or not). The scoreboard will be unfrozen after the contest to reveal the final rankings. The contest administrators reserve the right to change the timing of when the scoreboard freezes, but this is rare.