Lately I've been trying to get into problemsetting, and one question keeps coming to mind: what actually makes a problem "great"?
I searched around a bit, and the only blog I found discussing this topic in depth was antontrygubO_o's "On problemsetting": https://codeforces.me/blog/entry/70178
The only problem is that it was written about 7 years ago. Since then, competitive programming has changed quite a lot, so I was wondering what people think nowadays.
I'd love to hear opinions from both experienced problemsetters and contestants.
Some questions I have:
- What makes a problem memorable or enjoyable to solve?
- What are the biggest mistakes beginner setters usually make?
- Are there any recent problems or contests that you think are great examples of good problemsetting?
- When creating problems, what do you care about the most? Originality? Elegance? Educational value? A nice story? Something else?
- How do you come up with new ideas without accidentally reinventing an existing problem?
Or just share your own thoughts about problemsetting in general. There probably isn't a single "correct" answer, so I'm interested in hearing different perspectives.
Hopefully this thread can become a nice collection of advice for people who want to write better problems.
Thanks!



