Competitive coding format has not seen much innovations since the times of ICPC and Topcoder SRMs though there have been many incremental improvements. I have been thinking about ways in which we can improve on current formats. I am eager to know if anyone out there has a good idea to make contests interesting for both participants and spectators. Note that by competitive programming I don't necessarily mean only algorithmic programming. Given below are some lines of thought I have had so far in no particular order.
- Make it more game like (graphical). May also help in spectating as spectators can watch the output
- Different contest format (e.g. 1v1 tournament style, club based, country based teams)
- Make it equally interesting for people of lower and higher ratings (e.g. constraints based on ratings?)
- Tie it to real world projects (???)
- Different problem formats (e.g. interactive problems was a good idea, some good problems at IPSC)
What have you got?
PS: This is a mirror of a similar post I made on Facebook.
Make problem statements more realistic? Tired of same characters :P
Haha true. But I wonder which way participants want the statements to be constructed. Would people be more interested in a fantasy setting for problem statements or more job-like realistic ones?
Thanks for the blog! I too believe we must come up with new stuff in CP, everything else seems to see some innovations and changes now and then.
I loved the 1v1 format, looking forward to new ideas for such styles.
Something that can be added, is maybe some specific problems where you only get AC(or 100% AC) if you manage to submit something that consumes < X memory, or runs in < T time, in that case pragmas and optimization stuff shouldn't be allowed. Of course T would be much less than a second, and X wouldn't be 1024Mb or smth similar.
I believe these kinds test a needed skill(even outside of CP) as they require some problem solving, good knowledge of your language, data-structures, variations of known algorithms etc.. However they shouldn't have big scores or make a big difference in a contest.
I like the idea of either optimising time or memory. Should not be hard to modify existing scorers for that.
And how you are going to test whether my solution is slow or infinite loop if memory is fine
We can go further and require any of 3: small memory, small runtime or correct answer.
Good proposition. Hope Codeforce and comminuty will accept this.
Regarding your first point, isn't it what Codingame does? I haven't used it much, guess I tried it once a few years back.