University of Victoria · Est. 2021

Find the
shortest path.

Competitive programming & technical interview prep at UVic.

01 About

A room for people who like hard problems.

UVic CPC is for students training for programming contests, building sharper algorithmic instincts, or preparing for technical interviews. We learn the patterns, then put them under pressure.

A01

Practice deliberately

Move from concepts to timed sets, with feedback that makes the next solve faster.

A02

Think in teams

Share whiteboards, compare approaches, and learn how a contest team actually works.

A03

Start where you are

Basic programming is enough. Curiosity and consistency do the rest.

02 Meetings

Open to every UVic student with basic programming experience.

Twice a week.
One shared scoreboard.

Bring a laptop. Show up for the first problem. Stay for the postmortem.

TUE01

Team training

Timed problem sets, team strategy, and contest simulation.

6:00–7:30
PM
FRI02

Coached session

Practice-question walkthroughs, techniques, and discussion.

6:00–7:30
PM

Location: ECS 249. Join discord for events and contest information.

03 Competition track

Train with a target.

We are building teams for the ICPC Pacific Northwest Regional, while keeping the door open for anyone who wants a better competitive edge.

  1. NOW
    ICPC Regional

    Algorithmic depth, team practice, and contest readiness.

  2. NEXT
    LeetCode nights

    Interview patterns, speed, and clear communication.

  3. SOON
    Small competitions

    Low-stakes rounds to test new skills together.

04 Resource archive

Notes, slides & session recordings.

Every session is a reusable edge in the graph.

SESSION 6

Spring practice 04

Pacific Northwest Regional problem set — work through a focused ICPC set as a team.

icpcpracticegraphs
SESSION 5

Fall practice 09

A five-problem Kattis set featuring geometry, strings, and constructive problem solving.

kattispracticegeometry
SESSION 4

Network flow

Notes and notebook for modelling flows, cuts, and matching problems.

algorithmsgraphnotes
SESSION 3

Heap practice

Priority queues, scheduling patterns, and a curated practice set.

data-structurespracticeheap
SESSION 2

Data structures foundations

Quick review of foundamental data structures and algorithms

data-structuresalgorithms
SESSION 1

Easy ad-hoc questions

Professor Ibrahim walk us through some easy ad-hoc questions from previous ICPC questions

ad-hocpracticeICPC
ARCHIVE 3

Fall Practice 8 2023

Problems (courtesy of Lawrence): Rise and Fall Circle Bounce Black and White Square Bounce Tetris Ge...

session notesarchive
ARCHIVE 4

Fall Practice 7 2023

Problems (shortest paths, courtesy of Lawrence): Shortest path of the king Rook, Bishop and King The Cla...

session notesarchive
ARCHIVE 5

Fall Lecture 1 2023

Lecture by Dr. Ibrahim Numanagić about what to do when stuck on a problem in competitive programming.

session notesarchive
ARCHIVE 6

Fall Practice 6 2023

Problems (B, C, D): AtCoder - Beginner Contest 319

session notesarchive
ARCHIVE 7

Fall Practice 5 2023

Problems (courtesy of Lawrence): Reversibly Cyclic Strings Tournament Seeding Who Goes There? Rise and...

session notesarchive
ARCHIVE 8

Fall Practice 4 2023

Problems (B, C, D): AtCoder - Beginner Contest 322

session notesarchive
ARCHIVE 9

Fall Practice 3 2023

Problems: LeetCode - Weekly Contest 364

session notesarchive
ARCHIVE 10

Fall Practice 2 2023

Problems: ABC309 - Rotate ABC309 - Medicine ABC309 - Add One Edge

session notesarchive
ARCHIVE 11

Meeting Schedule for Fall 2023

First meeting: Wednesday Sept 13, 5:30, in ECS 342. Meeting every Thursday, 5:30PM, in ECS 342 starting from Se...

session notesarchive
ARCHIVE 12

First meeting for Fall 2023

Introduction slides Problems: ABC314 - 3.14 ABC314 - Roulette ABC314 - Rotate Colored Subsequence ABC...

session notesarchive
ARCHIVE 13

Summer 2023 Practice 5

ABC304 - Subscribers ABC304 - Virus ABC304 - A Piece of Cake ABC304 - Good Graph

session notesarchive
ARCHIVE 14

Meeting Schedule for Summer 2023

Meeting every Thursday, 3:00PM, in ECS 352.

session notesarchive
ARCHIVE 15

Summer 2023 Practice 4

ABC303 - Discord ABC303 - Dash ABC303 - Shift vs. CapsLock ABC303 - A Gift From the Stars

session notesarchive
ARCHIVE 16

Summer 2023 Practice 3

ABC302 - Find snuke ABC302 - Almost Equal ABC302 - Impartial Gift ABC302 - Isolation

session notesarchive
ARCHIVE 17

Summer 2023 Practice 2

ABC301 - Fill the Gaps ABC301 - AtCoder Cards ABC301 - Bitmask ABC301 - Pac-Takahashi

session notesarchive
ARCHIVE 18

Summer 2023 Practice 1

ABC300 - Same Map in the RPG World ABC300 - Cross ABC300 - AABCC ABC300 - Dice Product 3

session notesarchive
ARCHIVE 19

Post-ICPC Practice 8 Spring 2023

ABC299 - Dango ABC299 - Find by Query ABC299 - Nearest Black Vertex

session notesarchive
ARCHIVE 20

Post-ICPC Practice 7 Spring 2023

ABC298 - Cards Query Problem ABC298 - Writing a Numeral ABC298 - Unfair Sugoroku

session notesarchive
ARCHIVE 21

Post-ICPC Practice 6 Spring 2023

ABC297 - chess960 ABC297 - PC on the Table ABC297 - Count Subtractions

session notesarchive
ARCHIVE 22

Post-ICPC Practice 5 Spring 2023

ABC294 - ASCII Art ABC294 - Merge Sequences ABC294 - Bank

session notesarchive
ARCHIVE 23

Post-ICPC Practice 4 Spring 2023

LeetCode Weekly Contest 336

session notesarchive
ARCHIVE 24

Post-ICPC Practice 3 Spring 2023

LeetCode Weekly Contest 335

session notesarchive
ARCHIVE 25

Post-ICPC Practice 2 Spring 2023

LeetCode Weekly Contest 329

session notesarchive
ARCHIVE 26

Post-ICPC Practice 1 Spring 2023

ABC291 - Trimmed Mean ABC291 - LRUD Instructions 2 ABC291 - Flip Cards

session notesarchive
ARCHIVE 27

ICPC Practice Contest 3 - Spring 2023

session notesarchive
ARCHIVE 28

ICPC Practice Contest 2 - Spring 2023

session notesarchive
ARCHIVE 29

ICPC Practice Contest 1 - Spring 2023

session notesarchive
ARCHIVE 30

Warm Up Practice Contest 1 - Spring 2023

session notesarchive
ARCHIVE 31

Practice Spring 2023

ABC211 - Number of Shortest paths ABC211 - chokudai

session notesarchive
ARCHIVE 32

Meeting Schedule for Spring 2023

Meeting every Friday, 11:30AM, in ECS 354.

session notesarchive
ARCHIVE 33

Meeting for Spring 2023

Meeting on Friday, January 27th, 5PM in ECS 123. Bring your latop as we will solve some problems. If you’re int...

session notesarchive
ARCHIVE 34

Warm Up Spring 2023

ABC176 - Multiple of 9 ABC233 - Count Interval

session notesarchive
ARCHIVE 35

First meeting for Spring 2023

The first meeting of the Spring 2023 term is Friday, January 20th, 5–6 PM in ECS 123. If you’re interested in th...

session notesarchive
ARCHIVE 36

Summer Practice 11 - 2 Pointers

Intersection of Two Linked Lists

session notesarchive
ARCHIVE 37

Summer Practice 10 - Binary Search

Search in Rotated Sorted Array

session notesarchive
ARCHIVE 39

Summer Practice 8 - Trie

Word Break II

session notesarchive
ARCHIVE 40

Summer Practice 7 - Dijkstra

Path with Maximum Probability

session notesarchive
ARCHIVE 41

Summer Practice 6 - Tree

Find First and Last Position of Element in Sorted Array Diameter of Binary Tree

session notesarchive
ARCHIVE 43

Summer Practice 4

Longest Substring Without Repeating Characters

session notesarchive
ARCHIVE 44

Summer Practice 3

Multigram Modulo Solitaire

session notesarchive
ARCHIVE 45

Summer Practice 2

Army Strength (Hard) Kattis’s Quest

session notesarchive
ARCHIVE 46

Summer Practice 1

Name Generation Touchscreen Keyboard

session notesarchive
ARCHIVE 47

First Meeting Summer 2022

Where’s My Internet?? Brexit Elevator Trouble

session notesarchive
ARCHIVE 48

End of Term Contest

session notesarchive
ARCHIVE 49

Topological Sort

Kattis - Build Dependencies Kattis - Conservation

session notesarchive
ARCHIVE 50

Leetcode Practice

15. 3Sum 371. Sum of Two Integers 417. Pacific Atlantic Water Flow

session notesarchive
ARCHIVE 51

Leetcode Practice

1. Two Sum 215. Kth Largest Element in an Array 904. Fruit Into Baskets

session notesarchive
ARCHIVE 52

ICPC training 6

session notesarchive
ARCHIVE 53

Practice - Ad Hoc

Kattis - Postal Delivery Kattis - Falling Apples

session notesarchive
ARCHIVE 54

ICPC training 5

session notesarchive
ARCHIVE 55

Leetcode Practice - Heap

347 - Top K Frequent Elements 295 - Find Median from Data Stream

session notesarchive
ARCHIVE 56

ICPC training 4

session notesarchive
ARCHIVE 57

Practice

Kattis - No Thanks Kattis - A1 Paper Kattis - Bank Queue

session notesarchive
ARCHIVE 58

ICPC training 3

session notesarchive
ARCHIVE 59

DFS Practice

505B - Mr. Kitayuta’s Colorful Graph 510B - Fox And Two Dots 580C - Kefa and Park

session notesarchive
ARCHIVE 60

ICPC training 2

session notesarchive
ARCHIVE 61

Spring 2022 Warm Up

Kattis - Babelfish Kattis - Ants Kattis - Doctor Kattis

session notesarchive
ARCHIVE 62

Network Flow

Slides Code

session notesarchive
ARCHIVE 63

ICPC training 1

session notesarchive
ARCHIVE 64

Easy Practice 12

session notesarchive
ARCHIVE 65

Easy Practice 11

session notesarchive
ARCHIVE 66

Winter Holidays Contest

session notesarchive
ARCHIVE 67

Team Practice Contest

session notesarchive
ARCHIVE 68

Bridges

Kattis - Birthday Party Kattis - Cave Exploration

session notesarchive
ARCHIVE 69

Practice Contest - 2021-12-01

session notesarchive
ARCHIVE 70

Segment Tree Practice

CSES - Static Range Minimum Queries CSES - Dynamic Range Sum Queries CSES - Range Update Queries

session notesarchive
ARCHIVE 71

Segment Trees

session notesarchive
ARCHIVE 72

Minimum Spanning Tree

Kattis - Island Hopping Kattis - Lost Map

session notesarchive
ARCHIVE 73

Practice Contest - 2021-11-10

session notesarchive
ARCHIVE 74

Convex Hull

Kattis - Board Wrapping

session notesarchive
ARCHIVE 75

Practice Contest - 2021-10-27

session notesarchive
ARCHIVE 76

Math Practice 20-10-2021

session notesarchive
ARCHIVE 77

Union Find

Kattis - Union-Find

session notesarchive
ARCHIVE 78

Backtracking

Kattis - Dobra Codeforces - Dreamoon and WiFi

session notesarchive
ARCHIVE 79

Practice

Atcoder - Many Balls Codeforces - Pipeline

session notesarchive
ARCHIVE 80

Codeforces practice

Word Buy a Shovel Decoding Petya and Countryside

session notesarchive
ARCHIVE 81

Practice 2021-09-10

Count Special Quadruplets Postal Delivery

session notesarchive
ARCHIVE 82

Leetcode 12 - Greedy

Partition Array Into Three Parts With Equal Sum Remove Duplicate Letters Task Scheduler

session notesarchive
ARCHIVE 83

Leetcode 11 - Strings

Restore IP Addresses Interleaving String Different Ways to Add Parentheses

session notesarchive
ARCHIVE 84

Practice Contest - 2021-08-20

session notesarchive
ARCHIVE 85

Leetcode 10 - Trees

Time Needed to Inform All Employees Find Duplicate Subtrees Delete Nodes And Return Forest Flip Equival...

session notesarchive
ARCHIVE 86

Practice Contest - 06-08-2021

session notesarchive
ARCHIVE 87

Leetcode 9

3Sum Closest Sort an Array 01 Matrix

session notesarchive
ARCHIVE 88

Leetcode 8

Majority Element Find All Numbers Disappeared in an Array Sort Colors Maximal Square

session notesarchive
ARCHIVE 89

Leetcode 7

Product of Array Except Self Search a 2D Matrix II Partition Labels Copy List with Random Pointer

session notesarchive
ARCHIVE 90

Leetcode 6

Palindrome Partitioning Isomorphic Strings Max Area of Island

session notesarchive
ARCHIVE 91

UVic CP - Practice 16-07-21

session notesarchive
ARCHIVE 92

Leetcode Speed Solving 5

Add Two Numbers String to Integer (atoi) Regular Expression Matching

session notesarchive
ARCHIVE 93

Leetcode Speed Solving 4 - Sliding Window

Find All Anagrams in a String Number of Sub-arrays of Size K and Average Greater than or Equal to Threshold...

session notesarchive
ARCHIVE 94

Leetcode Speed Solving 3

3Sum Validate Binary Search Tree Jump Game II LRU Cache

session notesarchive
ARCHIVE 95

Leetcode Speed Solving 2

Kth Largest Element in an Array Unique Binary Search Trees Minimum Path Sum Binary Tree Right Side View...

session notesarchive
ARCHIVE 96

DP Practice

session notesarchive
ARCHIVE 97

DP Lecture by Ibrahim

session notesarchive
ARCHIVE 98

Speed-solving LeetCode DP Problems

Counting Bits Divisor Game

session notesarchive
ARCHIVE 99

UVic CP - Easy Practice 10

session notesarchive
ARCHIVE 100

UVic CP - Easy Practice 9

session notesarchive
ARCHIVE 101

UVic CP - Easy Practice 8

session notesarchive
ARCHIVE 102

UVic CP - Easy Practice 7

session notesarchive
ARCHIVE 103

UVic CP - Easy Practice 6

session notesarchive
ARCHIVE 104

UPC warmup - Summer 2021

session notesarchive
ARCHIVE 105

UVic CP - Easy Practice 5

session notesarchive
ARCHIVE 106

UVic CP - Easy Practice 4

session notesarchive
ARCHIVE 107

UVic CP - Easy Practice 3

session notesarchive
ARCHIVE 108

UVic CP - Easy Practice 2

session notesarchive
ARCHIVE 109

UPC Practice - from codeforces contest

session notesarchive
ARCHIVE 110

Easy Practice 1

session notesarchive
ARCHIVE 111

Fun Practice

session notesarchive
ARCHIVE 112

ICPC Practice 3

session notesarchive
ARCHIVE 113

Union Find

Union-Find Standard Union Find with Path Compression. Make n sets. If the operation is “=” then union set a a...

session notesarchive
ARCHIVE 114

ICPC Practice 2

session notesarchive
ARCHIVE 115

Shortest Path in a Binary Weight Graph

Bridges Simple BFS does not work because there can be a longer path that has a smaller total weight. Method ...

session notesarchive
ARCHIVE 116

ICPC Practice 1

session notesarchive
ARCHIVE 117

Prime Numbers

Check if a number is prime def is_prime(n): if n < 5: return n == 2 or n == 3 if not (n % 6 =...

session notesarchive
ARCHIVE 118

C++, GDB Lecture and Valid Subsets Problem

Introduction to C++ and GDB Chickens and Zombies problem Include the standard template library (STL) #in...

session notesarchive
ARCHIVE 119

BFS/DFS and Strongly Connected Components (SCC)

Islands Breadth First Search. You can also solve it with Depth First Search or any graph traversal algorithms...

session notesarchive
ARCHIVE 120

First meeting

Hello World! The Easiest Problem Is This One Summing digits of integer n: Method 1: math sum = 0 whil...

session notesarchive
ARCHIVE 121

Competitive Programming book

session notesarchive

New members welcome

Your next solve
starts here.

Join the Discord for meeting rooms, contest updates, and the problems we are working on this week.

Join on Discord