There is a problem I notice recently When hacking, for example, some people will hack others to see others' code after they have done such as D question. At this time, some of his friends may come to him to ask for the solution of D question, but many people do not want to take the risk of their own solution being judged cheating. They might send someone else's code which copied from hacking other people to their friends, and if their friend are judged cheating by system, the one who be hacked is really hard to prove he is innocent. So I think this problem is really serious.
And I also have some suggestion Firstly, the codeforces might can record the data about the user who view your code during the contest, and if there is any problem, it can provide some evidence
Second solution might be really useful but It also would cause a lot of problems , moveing the whole function of hack after the contest end, even someone send code to their friends, it is not count in their score, It might be a way to prevent cheating. But this method still have many aspects to improve, It is really welcome for everyone to give some own opinions.
For the second solution, do you mean using a 12-hour open hack phase for both Div.1/Div.2 and Extended ICPC, or a relatively shorter time period than an open hack phase with same format as it was on Div.1/Div.2?
My meaning is moveing the whole function of hack after the contest end, even someone send code to their friends, it is not count in their score, It might be a way to prevent cheating. And I know it will cause some problems. This method still have many aspects to improve, thanks for your suggestion
Auto comment: topic has been updated by Chenyu_Qiu (previous revision, new revision, compare).
One solution could be , who has sumbitted the code first should not be plagairised among the same codes.
But maybe the first one is also a cheater and all of them cheated from external source.
But you still catch $$${O(n)}$$$ cheaters; it's a pretty good solution.
Nah, we might be missing an amortized $$$O(n)$$$ cheaters also if we support this solution, because we caught the cheater and forgot about the intentional leaker
I am very thankful by receive your suggestion, But I been thinking about this solution before, the problem is the one who is going to cheat might take photos of coding or they might add some useless function or something to make it less likely to the first solution
Thought about this for a bit, and I think this will cause side effects, as it makes punishing leakers practically impossible.
https://codeforces.me/blog/entry/107215
We can have a few minutes(variable) of waiting time after the contest where you can lock the problems and the same thing that happens now( during the contest) and after the waiting time, the solution will be judged.
Thanks for your suggestion, that is a excellent idea
Basically Topcoder :)
Hacking after contest has ended can have hacking phase 10 minutes or so. I liked this idea.
I support the latter approach.
Here are some merits to move the hacking phase after the coding phase:
I think this proposal is very good, but has the following disadvantages: 1. The contest time will be extended. Assuming that the regular time of a contest is 2 hours and the hack time is half an hour, then each contest will be half an hour longer. For those who are used to the regular length of codeforces, it is unacceptable. 2. For people who don't usually like hacking, the increased hacking stage is actually a kind of torture to them. They can't add points, but they have to watch others add points. Therefore, I think that this scheme can only select some contests for experimentation at most to see the effect. Or for the same contest, it is divided into two contests, one contest follows the previous rules, and the other contest uses new rules divided into coding and hacking stages. Users register for one contest according to their preferences, and the rating changes are calculated separately for both sides.
Then just make it so the hacks are not worth any points
It's almost the same as removing hacking at all.
TBH no. With hacking, the strengths of systest are dramatically different (you have seen got FST in a large id testcase(It might be a hacking case), or got uphack many solutions after the contest, even for hard problems).
Agree. My point was that removing points for a hacks removes competitiveness from hacking process and therefore motivation in most participants to spend time on that. And to your point, that will also affect number of hacks and consequently quality of the final test set
and the hack time is half an hour
why exactly half an hour, I think it shouldn't be more than 10 or 15 min!For people who don't usually like hacking
andbut they have to watch others add points
to me it sounds like, for people who don't like math or dp problems, but they have to watch others solving problems.The second solution will be better, Not only because of the problem you mention but also the fact that harder problems are nearly impossible to be hacked. Supposing a GR, in a room there may be only one or even none of the participants that can solve a 2400-rating problem. In this case, nearly no hack will happen. You can only expect that the problem setter set strong enough test cases. Just move the hack after the contest and everyone who read the editorial or go upsolving can help.
In the first place, do we need hacking system?
Now, earning points by hacking is largely based on luck. Most hacks are made on easy problems. Because of room system, submittion for hard problems are really few. So even if we found some strong test to hack some sort of wrong codes, it is rarely applicable.
So, most of hack points are made to tiny miss or luckily passed O(N^2) solutions, which are easy to hack if we can find it. This mostly depends on luck which mean "how many roommates participate" and "how many has submitted hackable solution". Is this really fair?
Ofcourse others hacking points won't affect much to yourself's standings or performance, so it was not a big deal. Though, this system won't show one's ability precisely, much more from luck. If we have some problem of this system, removing it makes sense.
As a problem setter, I disagree with you. Because, no matter how responsible the problem setter is, the following situation will occur, that is, the prepared test data set will not be able to get rid of all incorrect algorithms. Maybe a solution is hacked because the pretest is not strong enough and the problem setter forgot to put strong enough test data into the pretest, but, more often, it is because the problem setter did not Be prepared to get stuck with some kind of wrong algorithm data in advance. You may think that the problem setter can add data after the game has started, but, in fact, this is not allowed, that is, the problem setter is not If it is allowed to hack the participant's code during the competition, then the task of preventing wrong solutions can only be left to the hacking system. Compared with the unfairness caused by letting the wrong solution pass the system test, I personally think the hack system must be retained.
I think it's just one aspect. There are still many solutions which actually have a hack case, though passed the system test. Killed solution is just one part of it. (But "Failed System Test" has large effect to himself, it's taken bigger than it actually is)
Preventing all wrong solution is unrealistic, and most of as notice it. A few contest site has hacking system (as far as I know, only topcoder?), it still works. Do we really need to get rid of ALL wrong codes?
yo, chill its just a game
The phrase "it’s just a game" is such a weak mindset. You are ok with what happened, losing, imperfection of a craft. When you stop getting angry after losing, you’ve lost twice. There’s always something to learn, and always room for improvement, never settle.
i meant not getting a good rank in a contest or getting one doesn't reflect your real abilities. Its just for practice so gib your 100% and dont care if it was fair or unfair.
It's literally a quote by Tyler "Ninja" Blevins
https://codeforces.me/contest/1738/standings/participant/141164732#p141164732
I hope SystemTest will be tested during the contest,open hacking after the contest, so "weak pretest" will disappear.
It would be good if the timings of the code submission is considered. The one who submitted the code first will not get plagiarism and others will get it.