Main / USC Programming Contest


Upcoming Event

The 2012 ACM-ICPC World Finals will take place in Warsaw, Poland, May 14-18, 2012. Good luck Trojans!

Recent News

The Spring 2012 programming contest was held on Sunday, May 6, 2011. Follow the link to see the problem set, results, sample solutions, etc.

Trojans, one of the three teams from University of Southern California, has won the first place in a field of 77 teams at the 2011 ACM-ICPC Southern California Regional Programming Contest and will advance to the 2012 ACM International Collegiate Programming Contest (ACM-ICPC) World Finals competition. The regional competition took place at Riverside Community College on November 12 and included teams from CalTech, HMC, UCSD, UCLA, etc. Of the 8,700 teams from over 1800 universities in 88 countries that competed in regional competions, only 100 will advance to the finals. Here is a piece of news by Viterbi School of Engineering.

Related link:

Final standings of the Regional Contest

Past Events

The Fall 2011 programming contest was held on Sunday, October 2, 2011. Follow the link to see the problem set, results, sample solutions, etc.

Have fun!
Extend your resume!
Show how smart you are!
Impress your friends!
Win cash and other prizes!
Represent USC at the ACM Programming Contest!

Do you like to solve problems like the following ones?

  • 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.

Participate in the USC Programming Contest!

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.

We use the USC Programming Contests to pick students that we train for the ACM 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, Liang Huang, Suya You, Alex Dimakis, the USC ACM student chapter, and Upsilon Pi Epsilon of the Computer Science Department of USC. Please contact David Kempe () with any questions.