Setting | CodeChef
Setting
Some would say that razor-sharp analytical skills and creativity do not go hand-in-hand, but we disagree. We know there are plenty of programmers out there who can come up with fun problems for our contests. We need problems for our Long Contests, Cook-Offs and our Lunchtimes. Read on for specifications and submission rules.
Note: If you are applying for becoming a new problem setter in CodeChef, and we don't know you personally and there isn't a problem setter of CodeChef who can vouch for your skills, then you must satisfy at least one of the below criteria for getting your problem setter application considered.
  1. 4* or more in CodeChef
  2. Div 1 in CodeForces or Topcoder.
Process
  • Initially, you just need to send the problem ideas. You can submit yours here.
  • We recommend sending only the basic problem idea or a short statement at first, along with the solution outline and constraints.
  • The admin will then review this, and have a discussion with you about the problem, during which the problem might be modified by mutual agreement.
  • Once the admin has approved the idea, you need to create the full problem statement and test data. If you do not have problem uploading access, you need to apply here to get the same.
  • You can contribute to a part of the problem set for Cook-Off and LunchTime. You can mention this in the additional comments section in the above form.
  • At any point, after the problem idea is accepted, the admin retains the right to reject the problem in certain cases.
Roles & Responsibilities
  • The problems should be "Chef"-ified :-). It will be good to build the problem statement around a story that has Chef in it. It is desired but not mandatory.
    If you are setting problems for Long Contest, Cook-Off or LunchTime, please try to include a mention of ShareChat (our sponsor of these contests) in the problem statement. For example, whenever there is a mention of some organization in the problem statement, ‘ShareChat’ can be used as the organization’s name. However, don't add the name of the sponsor if the statement has a negative connotation. In that case, Cheffification itself will do :) For example, if we are to “Chefify” the traveling salesman problem, the statement can be something like “Chef is traveling from the ShareChat Bakery to N different cities to sell delicious cookies. At the end, he needs to return to the ShareChat bakery. However, Chef needs to find out the most efficient way to travel to these cities….” and so on.
  • For every problem you submit, you must provide:

    • The problem statement. Please find the suggestions and template for writing a problem statement here.
    • The solution with appropriate comments for understanding. This is mandatory and should be submitted while submitting the problem.
    • Test Data
      - Test Cases: A set of input files and expected output files.
      - Test generation plan: Find the guidelines for creating a test generation plan here.
      - Test data generator
    • If using random in test data generator, make sure to use a fixed seed so that the same data can be generated.
    • A write-up and inputs regarding the problems to the Editorialist for making the editorials.
    • The prerequisites to solve the problem.
    • The difficulty level of the problem, which will be verified and approved by both the Problem Tester and a CodeChef Admin. Refer to Difficulty Levels.
    • If you do not provide all 6 of these requirements (after creating the final problem), your problem will not be considered for a contest!

  • You can use pictures or references required to explain the problem. You may send us pictures to upload on our server if you want to use them in your problems.
  • No cheating! You are not allowed to participate in a contest that includes your problem. Also, you are not allowed to share any information about your problems or answers with anyone.
  • No plagiarism! If we find you simply substituting names or numbers from other problems, we will not accept your problem. Even using the idea of an existing problem is not acceptable.
  • You are also not allowed to share your submitted problems elsewhere without our prior consent.
  • We're serious. Before we can review any of your problems, we require that you sign a Non-Disclosure Agreement saying that you won't cheat.
  • If we accept your problem, you must be available during the contest to resolve any issues pertaining to your problem.
  • You will have to reply / moderate / approve the comments on your problems when they are used in a contest at the soonest. For short contests, you have to be online during the whole duration of the contest. For Long contest, you have to login every day to approve / reply comments. The tester/ editorialist may help you in this, but it is primary responsible of the problem setter to address the comments.
  • The total number of test files for a problem should be kept to minimum (preferably not exceeding 10 for the hardest problem and not exceeding the number of subtasks for the easy ones). If needed, more test data can be added to the existing test files. (The reason being the judge get overloaded if there are more test files)
  • If we accept your problem, you must also answer the questions or any queries pertaining to it even after the end of the contest on the problem discussion forum. Most of the questions are asked till 1-2 weeks after the contest ends.
  • Under the exceptional situation of your problem having identified to have weak test data after the contest, you have to add additional test data to improve the problem in the practice section.
Schedule
You can have a look at our sample schedule here:
LONG COOK-OFF LUNCHTIME
Pre-approval of slot NA (problems are selected by CodeChef admin based on topics and difficulty level needs) 30 days before the start of the contest 30 days before the start of the contest
Submit Problem ideas 40 days before the start of the contest 30 days before the start of the contest 30 days before the start of the contest
Number of problem setter in a contest Multiple Usually one Usually one
Compensation
PROBLEM DIFFICULTY
Cakewalk USD 20
Simple USD 30
Easy USD 50
Easy-Medium USD 80
Medium USD 125
Medium-Hard USD 175
Hard USD 250
Super Hard USD 350
Challenge USD 175 forfor classic,
USD 200 for interactive
Whole Set - LONG -
Whole Set - COOK-OFF USD 475
Whole Set - LUNCHTIME USD 475