Challenge problems currently encourage questionable tricks such as submitting the same randomized solution repeatedly, hoping for a better seed, or, like winger did in APRIL13, find good seeds for different inputs and reuse them. While this definitely is a neat trick, it’s merely an exploit of the way CodeChef scores solutions, rather than an actual improvement of the algorithm.
Additionally, I’m sure it places extra load on the servers (again, with no real benefit). One could even automate the process of continuously submitting solutions to find better seeds. Imagine what will happen when all the participants of a contest are running such a script. Going even further, it’s not impossible to extract the actual input (as opposed to merely hashes in winger’s solution) to CodeChef’s problems. If you do that, you can run a solver offline for as long as you want and come up with (possibly) optimal solutions. Clearly this is not the purpose of the contest.
Provide one set of inputs that is used to score solutions during the contest. Then, once the contest is over, all the challenge solutions are run on another, different, set of inputs and the final score is the result of that 2nd run. This way it becomes pointless to tailor your solution to a particular set of inputs, and people will have to come up with better algorithms instead.