I am wondering why does codechef not make the test cases public post a contest. Others like Topcoder and codeforces lets the users know where they failed and helps rectify the mistake faster. Why cause people so much pain over not working code?
yes , Code Chef should tell the test case where the code is not working in the practice session along with wrong answer like it is displayed in codeforces and topcoder.
Yes, I second it. Test cases should be made public.
Then what would be the difference between codechef and other sites.
To quote Thomas Edison “I have not failed. I’ve just found 10,000 ways that won’t work”.
Where is the learning and fun part if you dont have to figure out why your code is wrong? When you build a software it is not possible for you to test all possible scenarios beforehand. Just “rectifying mistakes faster” wont tteach you anything. I spent 1 day on K-prime and 2 days on CIRKILL and i have learnt a lot of ways i can screw up code before correcting my mistakes eventually. The good thing is i know i wont be making the such mistakes again (hopefully!!). Good luck
This question has been answered already - http://discuss.codechef.com/questions/491/will-codechef-provide-test-cases
Sometimes, when you are getting repeated WA - it is very annoying to not be able to see the testcase. But
if you re-read the statement and re-consider your logic, you will find your mistake on your own.
"Where is the learning and fun part if you dont have to figure out why your code is wrong? "–>I’d say where is the learning and fun part if you don’t know whether your solution is blatantly wrong or its just a corner case you are missing, without the failing test case you can either check someone else’s solution, which can be very easily mapped to copying which I won’t exactly call learning or fun.
Just “rectifying mistakes faster” wont tteach you --> I disagree, I think learning from your mistakes is the second best way(First one would be not making them but then we won’t have such posts)
“When you build a software it is not possible for you to test all possible scenarios beforehand.” --> We aren’t building software here are we ? the way I see it competitive programming(I mean specifically Codechef) means thinking great solutions to a deterministic problems. Real world software is not only about algorithms. It has layers of Marketing, Management and what not, so the comparison is not really apt.
“I spent 1 day on K-prime and 2 days on CIRKILL and i have learnt a lot of ways…”–> Well that is your way of learning and is quite commendable you stuck at it, but not everyone may have the time and devotion and would like to find where his/her code breaks. I feel it is cruel on those persons to not let them know even during practice. By similar logic we should not be having editorials and should not make other people’s solutions open so that people find bugs and fix it themselves. I really don’t buy that.
Honestly, this is the only possible grudge I have against Codechef. I really can’t practice questions here if I don’t come to know where my code fails and my only fallback would be reading other solutions or asking for help which is practically giving up my idea and adopting the easy way to look at a working code. That seems less learning and fun as compared to getting the testcase where it failed.
DISCLAIMER: I would like failing testcases to be revealed only during practice and not during contests.
Its quite different even without it. I don’t know if they have 10 day algorithmic contests. Besides the platform should be mainly focussed on being good to the users. I feel differentiating from others should be a secondary criteria.
I think finding your mistake on your own happens in the good case. We should allow people another way if they are not able to find the mistake, at least in the practice.
@adityavikram I feel we have a clear disagreement on which way is the best to learn.I prefer the longer way while you like shortcuts.As far as Editorials are concerned they just teach you the approach and also option to see code.I have referred to codes a few times but i like to try again after reading the editorials once.we aren’t building software here but eventually we will work and i feel this experience will help me a lot. If you disagree with the ways and methods of this site then i suggest you stop complaining and go to a site better suited to your methods and time constraints.
I don’t think codechef should make testcases public even after the contest because all the contest problems are moved to practice section after the contest and if they reveal the testcases then there would be no point in solving those practice problems. Moreover, after the contest they publish editorials for all the contest problems, I think that serves the purpose of rectifying the mistakes better than presenting the testcases itself.
@adityavikram: There is another way – Ask on Discuss. Someone may point out the mistake or provide you corner case. Personally - for the problems I have created, (after contest) I go as far as running and tracing the code on real test cases, and then giving them the case they are failing on without revealing too much. If time permits.
Topcoder and hackerank also have long contests.
@vinayak garg. I don’t want to depend on discuss to find my mistakes , and wait till the admin or setter or anyone else answers. Besides it’s written in the link provided by you that it would increase motivation. If someone is not able to find the mistake in 11 days , he will not get the dream of test case 12 th day. I think struggling 11 days on the same question is enough , atleast after that we should know where are solution goes wrong. I have always improved by looking into where my solution goes wrong.
I want to add more, the sites that don’t release the test data increase the user rating in practice like spoj, timus etc. The sites which change the rating only during contest release the test case where your solution is going wrong.
i think by not giving test cases…you not only get to rack your brain to create a program that you think solves the problem but also make you rack your brain as to why it didnt work.its not just program implementation but in a way program testing and loophole finding too…look at the bright side of it. but yes if we arent able to drill down on the “bug” we could use the test cases if they were made public to learn.