Yearly programming contest for college students held by ACM. http://acm.baylor.edu/acmicpc/
One team comprised of 3 undergraduates or two unders and one graduate solves 6 to 9 problems for 5 hours. They are ranked as in the order of the number of problems they solved correctly, and then the total elapsed time for the programming and the penalty score, which they get each time their program is refused. The performance of the code doesn't matter.
Except that particularly ill-performing code can be refused, if the runtime or the memory usage exceeds limits deemed "reasonable". So brute force is not always an option.
Last year(2001) the first ranked team at the world final solved 6 among 9 problems. You can see the problems at http://acm.baylor.edu/past/icpc2001/Finals/Problems.pdf
If you can solve any one of the problems _by_yourself_ in an hour(including the time you took reading and interpreting the problem text), you could be proud of yourself, or your way of programming.
Often one or two, or even more, of the problems in a particular competition are easy, depending on region and year. Don't pat yourself on the back too quickly. :-)
From time to time, I challenge the ICPC problems just for fun, and sometimes for exercising my brain. It's highly entertaining. Yes, I acknowledge that such algorithm-laden problems are not so many in real world biz domain but solving them awakens and energizes my brain for other domains.
In addition to that, I solve them in XP way -- TFD, UnitTests, and refactorings. It was a sheer joy compared to without XP. Moreover, I can practice my XP skills at the same time.
Problem A from 2001 world final seems a bit easy, and I solved in half an hour(my first language isn't English and it took me a while understanding the problem text) with full TFD and refactorings. Problem B was a little bit more difficult and took me an hour or so. I really enjoyed them.
-- JuneKim