Satoru's blog

By Satoru, history, 15 months ago, In English

Requested to publish from Basilhijaz:

"

Hello, I am Basilhijaz. I participated in lots of Codeforces rounds and the last one I did was Educational Codeforces Round 155 (Rated for Div. 2). Unfortunately, I was trying to login to my account today and got the message "User is disabled by administrators". I checked my email and it looks like I was accused of cheating in that specific round. Apparently my Submission on Problem B 224888371 is so close to LetsPractice's Submission 224901176.

This problem we both got accused of copying from each other is B in an Educational round which means solutions can get actually really close and if you notice the solutions are so short which increases the probability of matching.

Previous Accuses of Cheating Attempts (Problem, My Submission, Similar Submission/s)(problem classification):

Observations:

  • Most of the problems I got accused of cheating are <= *1400.

  • The solutions are quite short and easy to come up with.

  • All cheating attempts are with random/different people having no connections with.

  • I never publish my code online during contests or use ideone.com or any similar websites.

Credibility:

  • ICPC finalist for the upcoming ICPC 2022-2023.

  • IOI Participant twice (2019 and 2020).

  • Joined Codeforces more than 5 years ago.

  • Did 231 contests on Codeforces.

  • Solved Over 2000 problems on Codeforces.

Actions I previously took for previous accusations:

Mike replied to my comment: "lightning rarely strikes the same point twice". Well, looks like it hit five times the same place. I am sad to see all of this happening right before ICPC and preventing me from practicing and doing regular contests.

Regardless of the effort done to build the cheating system, I think the algorithm needs quite improving.

After writing comments and messages and not seeing any action happening and getting almost every time my solutions to get skipped and me losing ranking with no action, I hope this time it's different.

CC: MikeMirzayanov

"

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

| Write comment?
»
15 months ago, # |
  Vote: I like it -125 Vote: I do not like it

MikeMirzayanov appears to be so defensive about two things:

1) When a problem is similar from the past contests

2) When a high-rated trusted participant gets out-of-competition for a system error.

downvote me IDC arrogance isn't a good beahivour ain't it dear Mr. Mike?

»
15 months ago, # |
  Vote: I like it -29 Vote: I do not like it

Orz Basil. Free Palestine and upvoted ofc.

»
15 months ago, # |
Rev. 2   Vote: I like it +77 Vote: I do not like it

The world record for most lightning strikes survived is 7. 7 is larger than 2.

»
15 months ago, # |
  Vote: I like it +85 Vote: I do not like it

This looks very upsetting. I hope Codeforces will look further into this. Do cheaters have the wit to put such a post out here for everyone to see? Seems to me the solutions are pretty straightforward, so there must be a big chance of coincidence. I think a candidate master can gain nothing by copying others' solutions.

  • »
    »
    15 months ago, # ^ |
      Vote: I like it +88 Vote: I do not like it

    I got skipped once for a code that's literally one line: 203259035

    • »
      »
      »
      15 months ago, # ^ |
        Vote: I like it -8 Vote: I do not like it

      I find it a bit hard to believe your story about being penalized for this specific submission, because it's indeed a trivial one-liner. There was a blog about a leaked solution for this problem and I see that many of the reported people were actually not penalized. When somebody gets caught, all submissions for all problems from the same contest are marked as 'skipped'. So I suspect that the real reason for punishing you was different, but you aren't going to tell us what it was.

      • »
        »
        »
        »
        15 months ago, # ^ |
        Rev. 2   Vote: I like it +8 Vote: I do not like it

        My solution to B was also really short: 203258316

        I suspect that the plagiarism detector skips when there are at least two problems with similar code, but in div 3 and div 4 contests, the first few problems often have very short codes, which makes the probability of a coincidence very high, especially with python

        • »
          »
          »
          »
          »
          15 months ago, # ^ |
            Vote: I like it -13 Vote: I do not like it

          I don't think so, but I'm not going to participate in brainstorming about how the plagiarism detector works. Your account activity is very suspicious and it's unlikely to be your primary account.

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

          you got rank 15000 and 2 consecutively that's great

  • »
    »
    15 months ago, # ^ |
      Vote: I like it +26 Vote: I do not like it

    I'm not implying that the OP is guilty, but cheaters surely have the wit to put shameless posts for everyone to see. This happened more than once. And candidate masters are not copying others' solutions, but share or sell their own. Which is even worse for the competitive programming ecosystem.

    It's understandable that coincidences may happen. And participating in 231 contests makes it highly unlikely to really never encounter any accidental code similarities. My understanding of the current situation is that Mike possibly decided that the number of coincidences exceeded a certain reasonable threshold.

    Now the question is whether it was really just a streak of unusually bad luck? Or could it be that the OP possibly decided that having flagged submissions once in a while is perfectly normal on the Codeforces platform and got an inspiration from the following XKCD comic:

    xkcd: You can do this one in every 30 times and still have 97% positive feedback.

    Either way, this doesn't look prety. Codeforces encourages unrated participation in contests using real accounts instead of creating throw-away temporary smurf accounts. But smurf accounts are safe. While real accounts have a non-negligible risk of getting punished due to unlucky accidental code similarity.

»
15 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Mike replied to your comment check it

»
15 months ago, # |
  Vote: I like it 0 Vote: I do not like it

How does what you wrote in the "Credibility" section make your claims more credible? So what you're an ICPC finalist. How does this mean that you don't cheat? How does it matter when you joined codeforces or how many contests you participated in? It seems that you are trying to make yourself better in everyone's eyes in general, but if I were a prosecutor, I could use all of this as an additional motive for you to cheat.

  • »
    »
    15 months ago, # ^ |
    Rev. 2   Vote: I like it +51 Vote: I do not like it

    If you participate in more contests you are more likely to have such coincidences. If you have credentials in other contests that are harder to cheat in, you have less need to cheat in a div2 B. I do not understand the point of your comment.

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    My points make sense in these ways:

    1. Putting other competitions I participated in (qualified to) shows that I've done other onsite competitions where it's almost impossible to cheat and still made it to the next rounds.

    2. Putting the Codeforces related competitions shows that I'm well-aware of the rules.

    3. The high number of competitions I participated in shows that it's a higher probability that I will be flagged as a cheater.

    4. The only way Candidate-master is not my real rating on Codeforces and that's the rating I got because of cheating means that I've been carried by my teammates to make it to ICPC. To your information my teammates, got a similar rating to me (Satoru and UserIsUndefined).

»
15 months ago, # |
  Vote: I like it +64 Vote: I do not like it

I know the size of Codeforces is much larger, but in my personal experience teaching CS courses, if you put the two codes 224888371 and 224901176 next to each other (say the plagiarism detector flagged them), I would absolutely suspect that there was cheating. They're equivalent up to variable names, including the order of variable declaration and the expressions. However, one example is usually not enough, so usually you watch and see if they do it again. It seems like there 4 other examples here of "notorious coincidences". Each and every one of these pairs reeks of "same code with the variable names mixed up".

Suppose this happened by random chance. I don't have access to these statistics, but wouldn't we see an order of magnitude more of these posts of "reputable" users having identical codes to others, where they were flagged 4 times (instead of 5)? And similarly, another order of magnitude more for people who got flagged 3 times?

  • »
    »
    14 months ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    I would have written it exactly the same way. The solution is to short to say anything

»
14 months ago, # |
Rev. 2   Vote: I like it -86 Vote: I do not like it

My question to all especially @MikeMirzayanov Why don't Codeforces allow all kinds of cheating? I believe for a open book test like CP, it should allow all forms of information access. In real world whatever role you are in, your boss is not going to say "You have to complete the task without taking help from any friend or without taking any help from Google/ChatGPT?". In real life if you can complete your task in whatever way you can it suffices. I think CP should also allow all forms of cheating to remain as close to real world as possible.

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

    In real life if you can complete your task in whatever way you can it suffices.

    If your task in the real world is to evaluate performance of some software, do you allow various forms of cheating? For example, comparing just the execution time of software X against the execution time of software Y wouldn't be very useful if each of these tests was performed in a different configuration on different undisclosed type of hardware.

    • »
      »
      »
      14 months ago, # ^ |
      Rev. 7   Vote: I like it 0 Vote: I do not like it

      If someone has already tested that software in that given hardware we don't redo it. We just report it and share a link to it. But as far CF is concerned it is cheating. In Cf you have to redo the already done task again.

      In real life you don't get much reward for solving an already solved problem that applies for algorithmic problems as well. My point is making all resource open will force people to set tougher problem. Problems which really make a difference, problems which are really on the borderline of already solved and not yet solved.

      • »
        »
        »
        »
        14 months ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        If you need to decide between picking software X or software Y for running on your server, then you just do a fair benchmark specifically on your hardware using your typical expected workload to compare this software side by side. And no, just trusting some random information from the Internet is unreliable. A cheapskate pays twice.

        CP is essentially more or less the same benchmark and it produces no practical value by itself. It's merely used to "grade" people. You can't directly compare CP with real world tasks, because real world tasks normally produce something useful.

        As for tougher problems in a different format. Have you tried AtCoder Heuristic contests? There's one of such contests in progress right now with 6 days remaining: https://atcoder.jp/contests/ahc025 (the "cheating" factor there is that different people may afford to allocate different amount of their time to participate in it).

  • »
    »
    14 months ago, # ^ |
      Vote: I like it +14 Vote: I do not like it
    1. Even in open book tests, they do not allow students to discuss among each other or straight up copy the solutions of their neighbours.
    2. If Codeforces allows everyone to copy from each other, then what is the purpose of contests anymore? It just boils down to how fast you can copy from each other and the people you know that can solve the harder problems.
    3. "In real life" — Codeforces is also real life.
    • »
      »
      »
      14 months ago, # ^ |
      Rev. 4   Vote: I like it -25 Vote: I do not like it

      Compare with practical(replacing word real for your sake) work. Copying from stackoverflow has no restriction , However copying each other should be restricted by laws like how open-source is restricted at same time have flexibility like open-source has(just an idea).

      I don't have a clear idea of how to enable copying from each other as someone who don't have smart friends will get deprived. So I am not talking about allowing it immediately without having a robust idea.

      I stirred the discussion to bring forward ideas on how to maximize learnings from CP more in future as the learnings seem to be very limited use today. CP coder keep solving CP problems day in day out , yet don't move the science forward much.

      A CPer despite solving so tough problems makes literally no money from CP, Greatest CP-er tourist made about $100K from CP in entire life. Whereas a software engineer solves very easy problems (compared to CP) yet makes lot more money. There must be some reason for it , right ? The reason is the work we do in CP don't add value to anyone, so no one pays for it, secondly everyone in CP solves the same problem without moving the science forward, so lot of brian effort goes in vain as far as economic side is concerned.

      • »
        »
        »
        »
        14 months ago, # ^ |
        Rev. 2   Vote: I like it +12 Vote: I do not like it

        Then that is not considered cheating, you are free to use external libraries and code that has been written before the contest, and you are free to google and use ChatGPT (although ChatGPT is really not helpful) as well.

        In response to your edit: Not everything has to be about making money and profits

        • »
          »
          »
          »
          »
          14 months ago, # ^ |
          Rev. 6   Vote: I like it 0 Vote: I do not like it

          before the contest

          what is the proof of before the contest as per current rules ?

          Yes allowing to use any pre-written code is actually a big move forward as I said, it used to be considered cheating few years back. People who have written there library were hesitant of sharing them in fear of being labeled a cheater if someone else used it. now I believe many people have started sharing their libraries, isn't it ?

          Allowing any pre-written code is almost brings you at par with practical works. If what drugkeeper is saying is correct, then Great move MikeMirzayanov

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

            Solutions and test generators can only use source code completely written by you, with the following two exceptions:
            1) The code was written and published/distributed before the start of the round,
            2) The code is generated using tools that were written and published/distributed before the start of the round.

            Source — The rule about third-party code is changing
            Note the exceptions.

      • »
        »
        »
        »
        14 months ago, # ^ |
        Rev. 2   Vote: I like it 0 Vote: I do not like it

        By your logic, even in coding / software role interviews, everything should be accessible. Just try to grasp the absurdity of your thought process.

        • »
          »
          »
          »
          »
          14 months ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          It has given us roughly 3x more productive candidates than what we used to get earlier following the DSA process popularised by FAANG.

          • »
            »
            »
            »
            »
            »
            14 months ago, # ^ |
            Rev. 2   Vote: I like it 0 Vote: I do not like it

            The only questions asked are not DSA though. You have take away assignments that are based on dev too in startups, questions asked on cs fundamentals, on dev fundamentals of the relevant stack for which a person applies, system design problems. Don't cherry-pick the details.

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

    What is even your logic here?
    Every competition needs certain rules for the competition to make sense.
    For example in an integral solving competition, you can't use an computer integral solver obviously.
    Such restriction will obviously take away a certain subset of the possibilities eg. cheating in current case, but that is very much intended.
    We don't want to compare the cheating squad building ability of an individual but rather check their individual algorithmic skills, maybe because the former is a very stupid competition.

    • »
      »
      »
      14 months ago, # ^ |
        Vote: I like it -10 Vote: I do not like it

      What is even your logic here?

      Logic is to extract as much practical value as possible.

      For example in an integral solving competition, you can't use an computer integral solver obviously.

      That's why in an era when machines can do integral solving, integral solving competition does not have any practical value.You wont get a job with title as "Senior integral solver" once that machine is in market.

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

        There is no value in a CP competition where cheating is allowed. I guess that is pretty much obvious.

        The practical value here lies not in the competition but in the side effect.

        CP helps you gain a good idea about data structures, algorithms and time complexity which provide you some amount of understanding which developing real world programs.

        CP helps you understand how to quickly come up with a logic to a mathematical problem / developed some problem solving intuition which is helpful in certain jobs.

        This competitions is designed to provide utility in that manner.

        • »
          »
          »
          »
          »
          14 months ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          CP helps you gain a good idea about data structures, algorithms and time complexity

          which provide you some amount of understanding which developing real world programs.

          I believe these two are orthogonal, but lets keep that discussion for some other day. But there again it depends on scope and definition of "real world".

          As I mentioned to ssvb as well, long form contests which span over days or sometimes weeks are more closer to practical work and hence generate lot more value. Short form contests don't allow you to learn new concepts in-between, nor build on top of already learnt concepts much. short contests are kind of reflex testing on existing knowledge.

          Many of the practices of long form contests might be termed as cheating for short form.

          • »
            »
            »
            »
            »
            »
            14 months ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            Long term contests also allow participants to copy and understand each other's code before reformatting it.

            Does it help you learn?
            Maybe

            Is that what a contest is for?
            No, solve problems from the archive instead and read editorials or ask friends if you wish, that's legal then.

            Long contests are a fun idea. but cannot easily be implemented (unless the participants are imprisoned or something), a contest is to judge a person's problem solving ability and not the ability to understand solutions well.

  • »
    »
    14 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    bro are you mentally alright?

  • »
    »
    14 months ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    Why don't Codeforces allow all kinds of cheating?, CP should also allow all forms of cheating

    Well, you are allowed Google search problem and use ChatGPT. But if by cheating you mean asking higher rated coder's help, then you probably forgot that the guy you ask for help has reached that stage without cheating.

    In real world whatever role you are in, your boss is not going to say "You have to complete the task without taking help from any friend or without taking any help from Google/ChatGPT?"

    Yes, you're right he will just ban. Also, you are just risking your company's proprietary code by taking help of outsiders. Being short sighted, you ofc never paid any attention to the problems it can cause.

    In real life if you can complete your task in whatever way you can it suffices.

    You wouldn't be wrong here completely BUT you forgot competitive programming is a sport. You can bring gun and shoot everyone to win the race easily :p

    • »
      »
      »
      14 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      "that higher rated guy" is higher rated guy is higher rated not because he asked some other higher rated guy. Because someone has to be the source.

      very unclear problem statement

»
14 months ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Are you 100% sure that this is the reason that you got banned? I would be surprised if these plagarism detections is enough to get you banned.