10 Years Of Problemwriting: An Interview With Nickolas (Mariia Mykhailova)

June 13, 2017 guestblogger

Nickolas is a member of Topcoder since 2005. She is a problem writer for Marathon and Algorithm competitions. Her archive includes more than 40 published Marathon tasks and a dozen prepared SRM/Algorithm competitions.

gorbunov: Many Topcoders enjoy solving tasks prepared by you. However, the statistics says that the last Marathon Match competition you participated, was back in 2010. What caused you to stop participating and concentrating on problem writing?

Nickolas: For me problem writing is much more interesting than participation, so, since one can’t do both in the same match, it was a natural choice. There was a couple of years immediately after I moved to the US when I couldn’t write problems due to visa restrictions, but at that time I was so overwhelmed by the new job and new country that I never had time to participate in any Marathons.

gorbunov: I have located an interview (part 1, part 2) with you written on your own back from 2011. You are currently writing the most of the Marathon Match tasks. Who, besides you, prepares them? Are there other problem setters?

Nickolas: t-mac and [Jaco], if we’re talking about fun Marathons only. Sponsored matches have a separate pool of copilots who prepare problems for them, but I don’t really follow the happenings there – not since 2011 when I helped prepare a sponsored problem RestrictionDigest.

gorbunov: SRM competition tasks do have a supposed solution. As I noticed, solutions for most hard and medium SRM tasks were born before the task statement. Is that true? When you write a task for a Marathon competition, do you have some possible solution in mind?

Nickolas: The way I write SRM problems, the statement always comes first, and then I try to figure out how to solve it. Same goes for Marathons – I might have a general idea of some way to approach the problem or some observations which can be useful for the solution, but usually the competitors surprise me easily.

gorbunov: It is not a secret that participation level in Marathon competition slowly goes down. Might it be the case that both the tasks of Marathon competitions became harder and long-time members are used to this difficulty, while new members are just lost at where to start? Should we deal with this complexity by introducing something like Division 2 matches, where only unrated and lower rated programmers could take part?

Nickolas: I believe there are multiple causes contributing to the decline, not just a single one, and a lot of them are probably listed in that thread. I remember I was quite lost 10 years ago when I participated in my first Marathon; these days I hope we’re doing a better job by providing a visualizer and sample solutions, so that at least it’s clear what is the format of the expected submission and how it is scored.

As for Div2 Marathon matches, at a glance it doesn’t look like a great idea. It reduces the number of matches in which everybody can participate, and encourages people who just like to solve problems to create new accounts to enter competitions they are not eligible for (we see this behavior a lot at Codeforces in Div2 only matches).

I’d rather try and do things which make the Marathons more accessible to everybody: do better advertisement of Marathons (I often see references in media to Topcoder as a crowdsourcing platform but not as a platform for pure competitive programming or Marathons), maybe make Marathons shorter to reduce the time commitment for each individual match etc.

gorbunov: Marathon competitions, as well as SRMs, are becoming more like a sport now. I would even say a professional sport. How would you comment about that?

Nickolas: A mind sport, definitely yes (not a regular sport – there is no physical athleticism involved). A professional sport, no. Professional sport implies that the competitors receive payment for their performance and there are professional athletes who earn at least half of their income from this sport and train full-time for it. I think there are one or two people in the world who can be called professional competitive programmers, but they are more of an exception than a rule; for most participants dedicating themselves to participation programming competitions and making a living out of it is not realistic. (For teachers/coaches it is possible but that’s a separate question.)

gorbunov: Back to problem setting. While solving a Marathon task, I often wonder, why did the author chose such constraints? Is there any hidden reasoning behind the limits on input parameters, except that the visualizer should fit into a screen?

Nickolas: More specifically, into a screen of my laptop…! Not really, most of the time I rely on gut feeling and on some experimentation with how the generated data looks and feels.

gorbunov: You said once that you enjoy collecting T-shirts from competitions. So do I. How many do you have by now?

Nickolas: Around 2 dozen I guess. There are not as many T-shirts in problem writing as in participation, and I had to deprecate several of my favorite T-shirts through the years due to high levels of tear and wear. I think 2016 was the first year in which I got fewer T-shirts from programming competitions (2) than from open source work (3) and my various activities at Microsoft (5).

gorbunov: Thanks for your answers! Waiting for new challenges from you.


Anatolijs Gorbunovs, gorbunov, is a software programmer from Latvia. During his school years, he was an amateur athlete with several Latvian Youth/Junior champion titles in long distance running. He graduated from University of Latvia and his hobbies include music, running, and programming competitions.

The post 10 Years Of Problemwriting: An Interview With Nickolas (Mariia Mykhailova) appeared first on Topcoder.

Previous Article
How is Crowdsourcing More Secure Than Traditional Means of Software Development?
How is Crowdsourcing More Secure Than Traditional Means of Software Development?

People make mistakes. We’re only human. But in business, human error can become a risk — whether nefarious ...

Next Article
What Do Positionless Basketball and Software Development Have in Common?
What Do Positionless Basketball and Software Development Have in Common?

Two things I love are sports and coding. Luckily for me, I combine both daily at Topcoder. As a child of......