How should I stop myself from cheating in Long Contests?

Read completely.This is a serious issue.

Confession : All the problems I solved in current contest are copied from ideone.com except MAXDIFF and LEVY.

In March’13 I saw that solutions to many questions of Long Contest were available on ideone.com.

This is really a serious as it tempted me to cheat again. I thought why should I solve a problem and once I copy a solution from there, from that point itself I start finding the other solutions. And this in turn is tempting me to copy again next time.

ISSUE : I want to be a good coder who can think on his own,who can apply algorithms and data structures to problems to real life situations. like all other Indian Coders(specially those who used to solve 2/3 problems but in 4/5 months they are solving 6/7 problems). But what is happening is that I feel guilty that I am copying a solution from there. This site is to be used as a platform for improving your skills
The major problem is being honest here.

Help me out friends.PLEASE. I am putting this in-front of the community so that you guys can advice me. Its a request.Although after reading this my account could be closed.
But do address this issue friends and give your suggestions.
I really want to be a good coder otherwise I would not have told this myself.

25 Likes

First of all, I applaud how you came out. It’s difficult for one to do so due to the consequences CodeChef puts on cheaters.

I had a similar problem, but it wasn’t for CodeChef. It was for the first few sections of the first chapter of USACO Training Gateway. I saw that solutions were online and I was tempted to simply google a solution and copy it.

A simple way that might work for you is to just block ideone.com, at least during the long contests. If you use Google Chrome, there’s a plugin known as Website Blocker. I didn’t use it to solve my problem for the Gateway, but I do use it to block sites like GMail and Facebook during USACO contests so I don’t get distracted. It might help you out with your problem.

If that doesn’t work, you’re going to have to force yourself. It takes a tremendous amount of self-control, and it may take some time. What I do is I print out the problems and solve them by writing out psuedocode and doing scratch work on separate sheets of paper. It’s generally a good strategy to do this, and it might help you with your issue.

Regardless of what I say or what other people might say, the best way to solve this is with a good amount of self-control. Try to force yourself to not cheat. It might sound like this post won’t help, but aside from the few tips I gave above, there really isn’t much anybody else can do for you.

12 Likes

Hello,

Just to add some more lines to what @kullalok said, I also believe that up to a point, this will be influenced by your real will in learning new things… :slight_smile:

If it’s a lot harder to learn a new concept from the ground up? Yes, it is immensely harder than simply copying a solution… But, once you gain that extra knowledge, you will also realize that some previous things that seemed “impossible”, get easier almost naturally, and that’s because the concepts are beginning to get “embeded” in your brain and for that, nothing beats head-smashing hard work against a problem and only afterwards, if needed, you read the editorial… As the great coder Tomek once pointed out on a GCJ hangout, “what matters is to solve the problem… To learn from it, it doesnt matter it takes you weeks, days, years, as long as you solve it and learn something from it…”

Good luck,

Bruno

7 Likes

Hi,
I would suggest to start taking part in short contests extensively. Like the ones on CodeForces and TopCoder. Its impossible to cheat on these sites during a mere 2 hour contest and competition is tough. Questions are set with increasing level of difficulty and generally bottom 2/3 out of total 5 questions are easily solvable from an average programmers prospective. Plus thinking of a solution in limited time is challenging and builds a nice understanding of how to derive proof of correctness in minimal time. These contests are very frequently organized and i suggest u to take part in all. After you have solved about 50 problems in contest like environment, you will definitely have enough self belief and improved algorithmic skills to approach problems on codechefs long contest.
P.S : All this worked for me and I hope it does for you too but follow this at your own risk :slight_smile:

4 Likes

@imcool >> Very brave and honest move there. That alone explains how much do you want to quit this thing, then it becomes easier actually. When you know you’re doing wrong, there are more chances that you will come back to the track as compared to those who can’t accept that they are doing something wrong.

Regarding Long Contests, I would suggest that Long Contests are there to teach you many things.

In the following message, I will keep away the external contests that are held here which contain a lot of repeated questions from previous contests.

I came to know this in last 4 months, when I actively participated in the long contests, couldn’t participate to the full in some but in gradually I started learning a lot of things. And in April I am happy that I did 5 problems, but not actually satisfied as the questions are relatively easier this month.

I saw your question yesterday and went to try whether it works, and trust me, you can write better code than most people are writing there. Its not an AC that matters, even a WA/TLE gives me satisfaction if I know that I have learnt things that were not known to me earlier.

I have experienced that with each single problem in the Long Contest you learn something. There is a better way to cheat, I tell you. For example, I cheat like this: I see a problem, if I know the idea how to solve it, I implement it. If I fail, then I do it again and again. But if the problem is entirely new to me, then I search the internet NOT for the exact code for that problem, but I search for ideas that can help me solve that problem. This helps in two ways - (a). your knowledge level increases. (b). you gain a lot of confidence.
For example, I used to have a fear from Graph Algorithms that whether I can implement them correctly or not. Mar’13 came with a question FIRESC, I got the idea of doing it, and implemented DFS but went wrong. It was after the contest only that I learnt the proper way and my fault. This way, I can never forget what I cheated! But if you copy the exact code from ideone then you will not even remember what idea it used in it.

So, cheat, but cheat wisely. Keep the hunger for ideas and knowledge (raw materials) and build your own program, please don’t use the ready-made things.

One tip to keep yourself motivated, I will say, fix an aim, for example, “I have to clear the ACM warmups this year anyhow”, “I have to get at least a Google T-shirt this year”, or the best one “I have to prove myself that even without cheating I can achieve something” – for that you very well know there is one and only one way - hard labor! And believe me, the satisfaction it gives then, is out of this world!

Good Luck!

47 Likes

Codechef is made due to these Long Contest… The whole structure, fan following and even the brand name of codechef was established due to the Long Contests… mainly its uniqueness, thrilling raging competitions… I think, codechef is mainly serving a purpose of helping coders around the globe, so if a person dont care about his own… then let them do all the cheating stuff… but they will not hav any basic understanding of phenomenal concepts…

Besides if Codechef can make a system to find exact similar submissions, the problem will be solved then… majorly small punishment such as removal of the submission if the coder is found first few times… disqualification from the contest in next few time… and deletion of account if the users dont care of these warnings… Deletion of duplicate accounts of a same person identified from his details… This can be a very good solution… to stop cheating… But Long Contest… It’s the HEART of Codechef

8 Likes

taking print out is a good suggestion. I am going to do that frm now…

1 Like

I agree with this, not only because of the shortened time, but only because of the uniqueness of the problems. I’ve noticed that CodeChef problems tend to be very similar to other problems on different sites, thus making it easier to find a similar solution online. However, TC and CF questions are generally very unique and it will be difficult, if not impossible, to find a solution that is remotely related to the problem.

Respect
Keep trying to solve by yourself. YOu will be able to solve.
You may not be a good coder …
But you are a Good man.