Chenyu_Qiu's blog

By Chenyu_Qiu, history, 2 years ago, In English

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.

  • Vote: I like it
  • +325
  • Vote: I do not like it

| Write comment?
»
2 years ago, # |
Rev. 2   Vote: I like it -8 Vote: I do not like it

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?

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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

»
2 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by Chenyu_Qiu (previous revision, new revision, compare).

»
2 years ago, # |
  Vote: I like it +45 Vote: I do not like it

One solution could be , who has sumbitted the code first should not be plagairised among the same codes.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it +33 Vote: I do not like it

    But maybe the first one is also a cheater and all of them cheated from external source.

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it +17 Vote: I do not like it

      But you still catch $$${O(n)}$$$ cheaters; it's a pretty good solution.

      • »
        »
        »
        »
        2 years ago, # ^ |
          Vote: I like it -23 Vote: I do not like it

        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

  • »
    »
    2 years ago, # ^ |
      Vote: I like it +24 Vote: I do not like it

    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

  • »
    »
    2 years ago, # ^ |
      Vote: I like it -26 Vote: I do not like it

    Thought about this for a bit, and I think this will cause side effects, as it makes punishing leakers practically impossible.

»
2 years ago, # |
  Vote: I like it +29 Vote: I do not like it

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.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Thanks for your suggestion, that is a excellent idea

»
2 years ago, # |
  Vote: I like it +56 Vote: I do not like it

moveing the whole function of hack after the contest end

Basically Topcoder :)

»
2 years ago, # |
  Vote: I like it +26 Vote: I do not like it

Hacking after contest has ended can have hacking phase 10 minutes or so. I liked this idea.

»
2 years ago, # |
  Vote: I like it +79 Vote: I do not like it

I support the latter approach.

  • Many of our community members already notice this cheating method, and some ugly cheaters try this is a matter of time
  • Innocent hackers may be punished and have no way to the proof innocent who just read the stolen code
  • Managing viewed history may make the site heavier

Here are some merits to move the hacking phase after the coding phase:

  • We don't have to choose coding or hacking during the contest
  • No one receive "Hacked" during the coding phase(fairer than now)
  • People who can't solve the problem but have strong tests can make hacking
  • We have the option to decide on the room divisions after the coding phase
    • We can extend the registration time
    • If we can make the room division smarter, we can avoid the situation that someone cannot make hacks because of too few submissions in the room
  • »
    »
    2 years ago, # ^ |
    Rev. 2   Vote: I like it +28 Vote: I do not like it

    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.

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it +14 Vote: I do not like it

      Then just make it so the hacks are not worth any points

      • »
        »
        »
        »
        2 years ago, # ^ |
          Vote: I like it +4 Vote: I do not like it

        It's almost the same as removing hacking at all.

        • »
          »
          »
          »
          »
          2 years ago, # ^ |
            Vote: I like it +6 Vote: I do not like it

          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).

          • »
            »
            »
            »
            »
            »
            2 years ago, # ^ |
              Vote: I like it +1 Vote: I do not like it

            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

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it +1 Vote: I do not like it
      1. It's extended only if you want to try hacking and/or have evidence you can do so. Both things are now uncommon on CF.
      2. Don't like hacking — don't do hacking, don't want watching how others add points — don't watch it.
    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it +14 Vote: I do not like it

      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 and but 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.

»
2 years ago, # |
  Vote: I like it +10 Vote: I do not like it

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.

»
2 years ago, # |
Rev. 2   Vote: I like it +30 Vote: I do not like it

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.

  • »
    »
    2 years ago, # ^ |
      Vote: I like it +9 Vote: I do not like it

    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.

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it +3 Vote: I do not like it

      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?

»
2 years ago, # |
  Vote: I like it -44 Vote: I do not like it

yo, chill its just a game

  • »
    »
    2 years ago, # ^ |
      Vote: I like it +40 Vote: I do not like it

    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.

    • »
      »
      »
      2 years ago, # ^ |
        Vote: I like it -35 Vote: I do not like it

      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.

      • »
        »
        »
        »
        2 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        It's literally a quote by Tyler "Ninja" Blevins

»
2 years ago, # |
  Vote: I like it +19 Vote: I do not like it

https://codeforces.net/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.

»
2 years ago, # |
  Vote: I like it +8 Vote: I do not like it

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.