The Fall 2023 contest has been scheduled. It will be held on Saturday, September 23, from 1:00-6:00pm, in rooms RTH 109 and RTH 115 (if lots of students participate). The practice contest (highly recommended - if you have never participated, it will take you some time to get used to compiling at the command line, using the submission system, etc.) will run from 1:00-2:00, and the real contest will start around 2:00-pm. Students are eligible - regardless of major or degree program - if they were born in 2000 or later, or started college for the first time (anywhere, in any major) in 2019 or later. To register, use the registration form, and register by Wednesday, September 20. (The deadline has passed.) If you register and realize later you cannot participate, please e-mail USCContest@gmail.com to cancel your registration, so we have an accurate count and buy the right amount of snacks.

This semester, for the first time ever, we will allow the use of Python (specifically, version Python 3).

**Update (09/19/2023)**: Because registration is very high, we are asking you to solve a small problem with your registration: in a currency where there are coins worth 1 cent, 8 cents, 21 cents, and 55 cents (the inventors liked Fibonacci numbers, apparently), how many different ways are there to give someone 2023 cents, with any combination of any number of these coins? You get one attempt at answering this question, which determines whether you are priority registered or just regularly registered. Obviously, you should solve this question yourself, not get someone to do it for you. Should the number of students showing up exceed the lab capacity (which is 56 participants, if all machines are working), then our participation policy will be the following: (1) Students who pre-registered and answered the question correctly, (2) Students who pre-registered but didn't answer the question or answered it wrong, (3) Students who showed up without pre-registering. Within each group, we will admit students first-come first-serve.

Have fun!

Extend your resume!

Show how smart you are!

Impress your friends!

Win gift cards and other prizes!

Represent USC at the International Collegiate Programming Contest!

- To pay your friends a dollar, you can give them, for example, four quarters, or five dimes and ten nickels. Write a program that calculates how many different combinations of coins there are that make up a given amount of money (say, 20 dollars) from pennies, nickels, dimes and quarters.
- You are given the description of a lake as a polygon, as well as your own position in a boat somewhere on the lake. When you throw a rock in the water, the waves travel away from the impact point at a speed of 1 meter per second. Write a program to calculate the earliest time at which a wave will hit the shore.
- You are given the names of n people who are to be divided into k alphabetical segments, for instance, to stand in line for registration at USC. An "alphabetical segment" consists of all people whose last name starts with a letter between two given endpoints (for example, D-H). Write a program that finds a division into k alphabetical segments such that each person is in exactly one segment, and the number of people in the largest segment is minimized.

The contest is open to all undergraduate and graduate USC students, regardless of major, as long as they were born in (current year - 23) or later, or started college for the first time (in any subject) in (current year - 4) or later.

We use the USC Programming Contests to pick students that we train for the ICPC Regional Programming Contest. If you like all details of the USC Programming Contests and would like to keep updated about the contests, you can subscribe to the USC contest mailing list.

The USC Programming Contests are organized by David Kempe and the USC ACM student chapter. Please e-mail USCContest@gmail.com for more information.