Every time after a contest, the Codeforces blog Rule about third-party code is changing is flooded with comments asking for Mike to review submissions, some of which are because of people sharing the same template and are otherwise distinct.
There is a solution that can handle these claims: ask users to submit a template before the contest, possibly as part of the settings, and can come in the form of a CF submission (so they can just input a submission ID). During the contest, they cannot edit the template, and similarities solely because of the template will not be considered when determining plagiarism.
I'm not familiar with how the plagcheck system works, but I'd like to ask for your opinions: is this feasible, and is this a good idea?
Yes, great idea!
[Deleted]
TL;DR: how do you prove that using multiple languages is not legit?
While I respect and understand the idea behind this suggestion, I can't agree with this one; some problems are much more easily solved in other languages than C++, for example 1091G - New Year and the Factorisation Collaboration with much more Python solves than C++ solves. It would easily make sense for me to solve this problem in Python and others in C++.
Besides, there are people who know multiple languages — for example, I usually do CP in C++, but I started out programming with Python and I've only learnt C++ for a year. For string operations, my Python skills are definitely better — I still don't know string constructors for C++, while for Python I can simply say
s = "a" * 10000
. There are definitely legitimate reasons for one to use multiple languages in the same contest. There are solutions to this, for example setting "aptitude tests", but none of them are robust enough AND worth the trouble to implement IMHO.I think taking a two-track approach on language usage is very useful in codeforces. This is because, usually Div2A,B doesn't have a TL too tight and Python is fast enough for it, and Div2C and later, C++ is preferrable. I use this combination very often and it helped a lot.
One possible issue that I can think of is the following: a lot of people have non-static templates. For example, if you're using a snippet manager for templates, there sometimes is functionality to fill out certain parts of the copied snippet yourself. This is easier to use than completely templating your code at times, especially when you have to modify a data structure significantly to store extra information, or you just want your submission to fit in the 64KB limit for the source file, which is hard if you're using too many templates.