1. Test Files and Time Limits:
For every submission submitted, the back-end judge on SPOJ gets occupied for a time, which is a product of number of test cases and time limit of that problem. Let's call this product P. For example, if a particular problem has 10 test files, each with a time limit of 3 seconds, that would lead to a product of P = 30 seconds for which the judge could potentially be occupied.
During rated contests, because of the huge number of submissions, even though we ramp up the number of judges, it gets overloaded if P is too high. And then the users end up having to wait for a long time for their verdict, and in worst cases has even led to contests being cancelled. So it is very vital that you keep this in mind.
In particular, for Cakewalk problems, P should be 1. That is, a single file, with time limit of 1. This is very very important because the load is particularly high at the beginning of the contest due to everyone submitting the Cakewalks.
For Simple, you should have P <= 4.
For Easy, P <= 8.
For Easy-Medium, P <= 12.
For harder problems you can have upto 20.
If you need to go above any of these limits, please get an explicit approval from one of our admins.
2. Each and every problem should have at least 2 independently written codes which get AC.
3. At least one code for each problem should have proper asserts. That is, all the constraints mentioned in the problem statement should be asserted in the code.
2. Input File Formatting:
Make sure that the formatting inside your input files are perfect. White-spaces matter for languages like Python while parsing it.
There should be no extra space at the end of a line. For example, if you are giving n elements of the array, you'll have a space after every element, but there shouldn't be a space after the last element.
Your file should end with a new line. That is, there should be exactly 1 empty line at the end of the file.
And generate the test files on an Unix machine (eg. Linux, Mac). Not on Windows. Because the differing newline characters messes up things in certain languages.
This needs to be tested using the functions given in this dummy code: https://pastebin.com/Vk8tczPu
The functions should be self explanatory mostly. k=readIntLn(a, b); reads an int and asserts that the value is in [a, b] and that this int is followed by a Line Break (ie. this is the end of the line). Similarly, k=readIntSp(a, b); would assert that this int is followed by a space.
Please write a code for each problem using the above template, which only takes the input using these functions, and outputs nothing. After submitting it, go to My Submissions. On the row corresponding to this submission, look at the first column. That is your SUBMISSION_ID. Now, go to the link of the form http://campus.codechef.com/files/stderr/SUBMISSION_ID (For eg. http://campus.codechef.com/files/stderr/22152366/)
Here, scroll down to the end, and you'll see the "STDERR:" section. For every data set (ie. every test file), you should see "SUCCESS" written there. If not, then there is some issue, and you'll have to fix them.
This takes care of both asserting bounds and formatting.
Note that the stderr page is accessible only by the problem setter, and co-authors.