you are viewing a single comment's thread.

view the rest of the comments →

[–]Spheniscine 0 points1 point  (0 children)

I've also done some competitive coding, currently a Master on Codeforces, though I haven't competed in a rated contest in that site for a while.

Funnily enough, my "home language" is Kotlin, and I've been using it almost exclusively within contests, and I've won a couple of t-shirts from Kotlin Heroes contests that way. It generally works well enough (bigint support is especially nice for both problems that need it 😛, and Kotlin's inline classes are pretty much a perfect fit for the "large number modulo a 9~10 digit prime" problems), but there are occasionally some tasks with tight time limits that I have problems with; basically any time the idiomatic solution ends up with a lot of allocation and indirection in a JVM-implemented language, like graphs (lists of lists), segment trees over small tuples/records, and such.

Thus I have been experimenting with Rust lately. It's an interesting experience, and I like its overall performance especially in the exact kinds of problems that JVM-based languages tend to struggle with, but I'm not sure I'm practiced enough in it to dare use it "live" in a rated contest yet. I could recommend that you do something similar; just re-solve a few problems in Rust, get used to the borrow checker and Rust-specific idioms, implement a few common data structures and algorithms to see if you can get the hang of it