I've been using Java, and pretty much only Java, all my life, which apparently seems to be an unusual circumstance. Virtually all the top players I've looked at seem to use C++, or on occasion some version of Python. This leads me to wonder if Java is simply the "noob" language. I understand that C++ is normally faster than Java, but from what I've seen, problems are designed such that the correct solution will run in the required time regardless of language, as long as the asymptotic complexity is correct. Is this different at the top level? I don't know much about C++, (I only had to code some basic stuff in C for school), so this could be completely wrong, but I don't think there are classes or objects or any of those helpful things like in Java. I would think using C++ is more restrictive. I'm wondering if abandoning Java and learning C++ is something I should do sooner rather than later if I want to reach any reasonably high rating in Codeforces. I would really prefer not to, given I've used Java all my life, but if it's virtually required, it would be nice to know ahead of time.



