Road to TCO18 finals: A New Hope

We interviewed TCO finalist Ce Jin, aka jcvb, a young Chinese rising star who has already obtained several extraordinary achievements, such as winning IOI 2016 (absolute first place) and getting the silver medal at ACM ICPC World Finals 2017.

Please introduce yourself: where are you from, what do you do for a living, what do you like to do in your free time, etc.
I’m from China. Currently I am a third-year undergraduate student in Institute for Interdisciplinary Information Sciences, Tsinghua University. In my free time I like playing ping-pong with friends. I also like sudoku speed-solving.

What are your plans for the future, let’s say next 10 years?
10 years looks too long ahead and I couldn’t really have a good plan. But, in the next few years I would try to do some research projects in theoretical computer science.

How hard was it for you to qualify to the TCO finals?
The online rounds are really competitive so it was hard for me to qualify. In previous years I advanced to online round 3 several times but never made it to the finals. But this year I was quite lucky – in Round 4 I coded the hard problem (an implementation task) without making any bugs, and got 6th place finally.

How do you prepare for the TCO finals?
I sometimes do SRM/CF/AtCoder rounds, but I don’t have much time to train intensively. I also took part in ACM ICPC regionals this year, and solving problems in regional contests is a good way of practice, too.

What do you expect from your first TCO finals?
Problems from TCO finals are usually very challenging. My goal is to successfully solve at least one problem.

Which kind of problems do you enjoy the most?
When I was in high school I used to like implementation problems (like data structures) because I could code fast and get the corner cases right. But now I do not practice much so I prefer problems that require thinking rather than coding skills, such as DP and counting.

Which are the 3 most important skills/virtues someone should have/develop in order to be a highly successful Topcoder programmer?
I think one important skill is to code accurately and beware of corner cases, because SRM problems usually have weak samples that you can’t rely on. Second is fast coding speed, since less time means a higher score and better ranking. This includes choosing the most convenient way of implementation in order to save time. The third important is the skill of hacking others’ solutions.

What motivates you to take part in programming competitions?
I enjoy competitive programming because solving interesting algorithmic tasks is fun. Some programming contests offer prizes or free trips, which are also good motivation. Another point is that many of my friends also do competitive programming, and we can sometimes discuss solutions or enjoy team contests together.

How do Topcoder competitions (and competitive programming in general) help you in real life?
My achievements in national programming contests helped me get admitted to the university, and my programming experience is useful in several courses that I took, such as algorithm and combinatorics. I’ve also made many good friends from the competitive programming community.

What would you advise to people who want to start participating in algorithmic competitions?
When you start participating in algorithmic competitions, it’s important to do a lot of practice so that you can implement an algorithm correctly within a reasonable amount of time. It’s also important to be familiar with those basic algorithms or math topics that frequently appear in contests.