I've already upvoted...
This is kinda stuff that should be in comments, but there's too much of it...
C gets rid of a lot of the unnecessary large-system stuff that's supported by C++, C# etc. You don't need OOP, templates etc to write small algorithm-centric systems.
That said, C++ has it's plus points - if you know it and you know how/when to avoid data hiding and other layers-of-abstraction-getting-in-the-way issues, use it.
Once upon a time, I'd have suggested Modula 2 (or a non-standard Pascal, possibly even Ada) as an alternative to C. There are some advantages to stricter typing, some disadvantages to the less rich set of operators, yada yada. These days, the world has mostly left these languages behind, though, so they're probably not real options any more.
Python will probably give you a much faster development speed, depending on what you're doing. It has OOP, of course, but it's easier to avoid it when you don't need it than C# or Java. The issues are (1) that the run-time performance may not be there if you're doing all the low-level stuff yourself (rather than use libraries that were written in C), and (2) there are times when you may want to manage memory yourself in low-level code - keeping things on the stack rather than cluttering the heap, not relying on garbage collection etc.
Python generators/iterators are also a very useful tool that you don't see in many other languages.
Writing critical components in C modules for use in Python is an option, but I'd be very nervous about getting into multi-language development with the time-constraints of a contest - there's at least twice the scope for things to go disasterously wrong.
Objective CAML is an impure functional language. It can do all the things a normal imperative language can do, and it has some very useful tricks from the functional world too. I'm not that experienced with it, but I certainly believe claims that it eliminates a lot of clutter, letting you focus on what you're doing - pattern-matching supports that claim for a start. And it's a native-compiled language that runs fast - though the "may want to manage memory for yourself" probably applies to Objective CAML (and F#) too.
Haskell - absolutely learn it, but not with the goal of using it for contests with a strong algorithms focus - but if you reach the point where you think it'll be a good choice, and you've understood my criticisms and rejected them (or found them valid but unimportant) - don't fight it either.