ACM ICPC: What I Learned

Yesterday I participated in my first programming contest. It was very fun, though challenging, and I learned a fair bit during it. The content consisted of teams of 3 working to solve 6 problems as fast as possible. The problems ranged from trivial (repeated arithmetic) to moderately complex.

Problem solving is fun.

I already knew this, but it has been some time since I've done intense problem solving. It was nice to sit down for a few hours and bang my head on a problem. Creative problem solving just feels good, in a way that most activities don't.

I don't know much about algorithms or data structures

Of course I know the basic search and sorts, but anything involving anything more complex than binary trees is beyond my current knowledge. A few of the problems were solved very elegantly with tree operations. I was unable to come up with a way to express the operation I wanted to perform. It's a standard problem which I had not been aware of.

Now that I know what I don't know, I can expand my knowledge.

C++'s iostreams are quite nice

Previously I haven't been a fan of iostreams, due to their misplaced pedagogical use. But, for simply reading whitespace-separated data from stdin and outputting the same to stdout, there probably isn't anything easier. I might implement something similar (though not using the >> and << operators).