Each year, the ACM holds a series of Programming Contests. The regional contests are held in November of each year. The winner of the regional contest goes on to the International Contest. There are prizes at both levels that include computer hardware and software, scholarships, and just plain cash.
Students enter in teams of three.
Prizes are awarded to the top teams in each category. Contestants have 5 hours to solve 6 or more posed programming problems. They have over 700 problems there, and an automated judging system. Regional contest web sites also have old problems. So, we need more conditions than what we had on the board.