Stanford Local Programming Contest - 2003

12pm to 4pm    Sat, 4 Oct 2003    Gates B-2

Congratulations! At the ACM Regional Contest, Stanford Red was 2nd and Stanford White was 5th. Complete standings

Announcements: We had roughly twice as many participants this year than before. Chuong (Tom) Do finished all five problems in a little over 2 hours! Andy Lutomirski finished all five too. Thanks to everybody for participating.

Get Started     Contest Problems


by manku: 1.c 2.c 3.c 4.c 5.c
by chuongdo: 1 (java) 2 (java) 5 (java)
by luto:
by gbhuang:
by sdguo: 3.c 4.c 5.c

Rankings: (P = Problems Solved, T = Time taken)
    ID        P  T    Name
    chuongdo  5  314  Chuong (Tom) Do 
    luto      5  508  Andy Lutomirski
    gbhuang   3  224  Gary Huang
    sdguo     3  303  Stephen Guo
    sknapp    2  132  Sean Knapp (grad)
    fkwok     2  140  Felix Kwok (grad)
    jmjacobs  2  148  Jared Jacobs (grad)
    kunnatur  2  182  Sandhya Kunnatur (grad)
    vesko8    2  201  Vesko Dimitrov (grad)
    keithito  2  217  Keith Ito (grad)
    mrabkin   2  220  Mark Rabkin (grad)
    kanishka  2  228  Kanishka Srivastva (grad)
    shaohong  2  324  Siu Hong Yuen
    numis     1   73  Eric Liang
    jimz      1   97  Jim Zhuang
    grabs     1  100  Mike Grabowski
    wsr23     1  104  William Robinson
    hendra    1  110  Hendra Tjahayadi (grad)
    cheehau   1  117  Chee Hau Tan
    billj     1  148  William Johnson
    blackmad  1  177  David Blackman
    chanman   1  216  William Chan
    aschwa    1  217  Andrew Schwartz
    sbansal   1  236  Sorav Bansal (grad)
Time taken for a problem = time from start of contest to time of correct submission + 20 mins per incorrect submission for that problem.
Total time taken = total time for problems that were correctly submitted.
Note: incorrect submissions for problems that you never managed to solve correctly, do not contribute to total time taken.

What is this all about?

Once again, Stanford will be hosting a local programming contest to select the students who will represent Stanford at the 2003 ACM Pacific NW Regional Contest, and hopefully at the The 2004 ACM International Collegiate Programming Contest

The local contest will be an individual contest (students compete as individuals, and not on teams. The top six individuals will be grouped to form two teams of three students each to represent Stanford at the regional contest.

The top two teams at the regional contest qualify for the International Contest Finals to be held March 28- April 1, 2004 in Prague, The Czech Republic. The winning students not only bring fame and glory to their university, they also win hefty scholarships ($$) and plenty of free software.

The contest pits teams of three with one computer against a host of problems in a limited time-frame. Typically, 6 or more problems are posed with five to six hours to solve as many as you can. These problems can generally be solved by careful analysis and application of algorithms taught in undergraduate computer science. Some are quite challenging. For examples, see the problems from previous years of this contest.

Am I Eligible to Compete?
You MUST be currently enrolled at Stanford
You MUST NOT hold a graduate degree (MS, PhD)
You MUST NOT have completed more than 2 years of study towards a graduate degree.
You MUST NOT have previously competed as a finalist more than once.
You MUST be a programmer/hacker able to code under pressure.
You MUST have a natural love for fun mathematical problems.

How do I Compete?

STEP ONE: Send email to indicating that you will be competing, so that I can get a rough idea of how many students to expect. (You can compete even if you don't do this, but you may not get your choice of terminals).

STEP TWO: Come to Gates room B02 (the Mac classroom in the basement) on Saturday, October 4th at 12:00pm. I will go over the rules of the contest, get set up with a practice problem, and begin the contest promptly at 1pm.

STEP THREE: Code like mad!!! The contest will last 3 hours. There are some great practice problems to try in the archives (previous contest pages). Come and help make a good showing for Stanford. I hope to see you there!

Rules and FAQ


Students participating in the local contest will compete as INDIVIDUALS. The top scorers will be grouped together to form the best possible teams. There will be two teams of three students each. In each team, only ONE team member is allowed to hold a baccalaureate degree. Effectively, this means that each team will likely consist of two undergraduates and one grad student. However, if the top scorers are all undergraduates, then each team will have three undergrads. In past years, it has usually come down to all of the undergrads competing against each other for 4 spots, and all of the grad students competing for the remaining 2 spots. This is why it is important that we have a strong UNDERGRADUATE turn-out for the contest, so that we can fill those spots with the best students.


Yes. You can bring textbooks, notes, printouts of code, and any other written material you want. However, you may NOT bring any MAGNETIC media (disks). In other words, you will have to MANUALLY TYPE into the computer any code that you use in your solution. (i.e. code that has been entered and/or compiled before the contest begins may NOT be used). To my understanding, you also MAY NOT use any electronic devices (ie. calculators, laptops), since you will have a fairly sophisticated "calculator" sitting in front of you. You also MAY NOT browse the web and download code. At the regional/final contest, all you'll have is a PC plus any printouts/books/notes that you carry with yourself.


The regional contest is typically held in a PC lab with development environments. It would be great if we could replicate these conditions here at Stanford for the local contest, but we will have to make do with what we have. Gates B02 is a Mac lab, and people will log in to the Sweet Hall machines and compose and compile their code there. I will support the judging of C or C++ code. If contestants request it, I can also judge Java programs, since this languages is also allowed at the regionals and world finals.


I haven't decided yet. I'm still writing the solutions I will use for judging. There will most likely be 5-7 problems.


I'll explain more at the contest, but the judging proceeds as follows (just like the regional contest):

  • Solutions to problems submitted for judging are called runs. Each run is judged as accepted or rejected, and the contestant is notified of the results. Rejected runs are marked as follows:

      syntax error
      run-time error
      time-limit exceeded
      incorrect output
      incomplete output
      excessive output
      output format error

  • A student my submit as many solution attempts ("runs") for a given problem as they wish.
  • The students who solve the most problems in the 3 hour period win. In the case of ties (which are almost assured), the student with the lowest total time wins.
  • The total time is the sum of the time consumed for each problem solved. The time consumed for a solved problem is the time elapsed from the beginning of the contest to the submittal of the accepted run plus 20 penalty minutes for every rejected run for that problem regardless of submittal time. There is no time consumed for a problem that is not solved.

Previous Contests
Past Stanford Local Programming Contests:
     2002     2001     2000     1999     1998     1997     1996    
Berkeley Annual Programming Contest
Past ACM Programming Contests

The ACM Programming Contest has been annually held since late-70s. Recently, many more programming contests have become popular. Most have a different format. For example,
   Google CodeJam 2003

Last update: 20 Sep, 2003
Contest Organizer: Gurmeet Singh Manku