Written by Jeffrey Sharkey
Well, by now you've probably Googled "how to win a programming contest." If you haven't, then go do that for awhile and come back later. ;) jk
Everyone seems to have different answers and strategies. I've only competed in two contests, so I'm no expert. But there were a few things that stuck out in my mind.
Hopefully you were told that you'll be on a team. (Yay!) If you think you don't need a team, go build a pyramid and come back when you're finished. lol
Spend a lot of time with your team; working out practice problems, eating pizza, memorizing library functions, etc. Find a few evenings and meet in a classroom with chalk and a projector. You don't need to pound out fully coded solutions, but at least walk through the problem solving process together.
Try finding a team of people you've [successfully] worked with before. If that doesn't work out, contest teams are a great way to make new friends. Get over any personality clashes ASAP. ;)
Swapping out several coders on the same computer isn't a great idea. Find someone who can type fast, and make them your resident coder. They don't need to have the best coding skills, but they have to type accurately and fast.
Two people should code together, watching and talking with the fast typer. That way you'll all know the code, and can help with debugging advice. Let the coder finish mundane output formatting while you start working on the next problem.
Don't waste time writing full pseudo-code on paper. Jot down general ideas like:
split string on periods and count sentences
for each sentence, split on spaces to count words
Only include loop details if important, otherwise keep them as action context like "for each" above. Lightweight pseudo-code will keep your team fast.
For the actual programming, know (yes, in order of importance):
split and substring. Regular expressions may help in a pinch, so learn the basics like replacing using capture groups () and quantities ?,+,*. Only use regex when it's faster than coding and when you won't have to pull out a reference book to make it work.
par, sent, word are perfect, and prevent spelling mistakes.
System.out or a FileOutputStream to a generic OutputStream.) Never forget to switch over to file IO in the end.
byte supports 256 values, but is signed (-127 to 128). Also look at formatting options (NumberFormatter in Java), because your output will probably pump out a lot of numbers.
Finally, put special emphasis on practice problems specific to your event. Most contests are fairly uniform, but always know your contest better.
Go read up on sportsmanship at Wikipedia. Being a card-carrying geek doesn't exempt you. ;) Never blame your teammates, never throw keyboards, and always have fun.
Oh, and hey, let me know how your team did! I was the coder on the UMD team that won DigiKey DKC3 in 2005, and placed first at our location in the 2005 ACM Regional competition. Go UMD! :)