CodeChef Logo CodeChef Logo
Courses

Programming and DSA

Learn to think like a programmer. Develop your problem-solving skills with essential data structures and algorithms.

Career Paths

From beginner to job-ready. Explore our curated career paths designed to help you succeed in the tech industry.

Other Courses

Programming and DSA

Explore courses

Catalogue

Programming and DSA

Learn to think like a programmer. Develop your problem-solving skills with essential data structures and algorithms.

Career Paths

From beginner to job-ready. Explore our curated career paths designed to help you succeed in the tech industry.

Other Courses

Explore courses
Practice Compete Compiler
Upgrade to Pro
Courses

Programming and DSA

Learn to think like a programmer. Develop your problem-solving skills with essential data structures and algorithms.

Career Paths

From beginner to job-ready. Explore our curated career paths designed to help you succeed in the tech industry.

Other Courses

Programming and DSA

Explore courses

Catalogue

Programming and DSA

Learn to think like a programmer. Develop your problem-solving skills with essential data structures and algorithms.

Career Paths

From beginner to job-ready. Explore our curated career paths designed to help you succeed in the tech industry.

Other Courses

Explore courses
Practice Compete Compiler
Home » Wiki » Codechef Problem Creation

Codechef Problem Creation

Table of Contents 
  1. Problem Setting
    1. Problems Setting Rules
    2. Long Contest Setting Guidelines
    3. Cook-Off Setting Guidelines
  2. Problem Testing
    1. Problem Testing Rules
    2. Long Contest Testing Guidelines
    3. CookOff Testing Guidelines
  3. Editorials Writing
    1. Editorial Writing Rules
    2. Long Contest Editorial Writing Guidelines
    3. CookOff Editorial Writing Guidelines
  4. Difficulty Levels
    1. Long Contest Problems
    2. Cook-Off Problems
  5. Conflict Resolution
  6. Payments
  7. How to Get Started!

 

Are you a mastermind who's bored of winning our monthly algorithm contests? Do you want to get some experience on the other side of the equation? CodeChef is on the lookout for advanced programmers to create and/or test problems and/or write good editorials in simple english for our long contests and our Cook-Offs. If you're interested in contributing, read the rules below and apply to become an official CodeChef Problem Setter or Tester or Editorialist.

Problem 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 both our Long Contests and our Cook-Offs. Read on for specifications and submission rules.

Problems Setting Rules

  1. We do not accept unsolicited problems. To become an official CodeChef Problem Setter, go here.

  2. The problems should be "Chef"-ified :-). What this means is that is will be good to build the problem statement around a story that has Chef in it. It is desired but not mandatory.

  3. 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.
      • The test generation plan. Find the guidelines for creating a test generation plan here.

    • The difficulty level of the problem, which will be verified and approved by both the Problem Tester and a CodeChef Admin. Refer Difficulty Levels.

    • A write up and inputs regarding the problems to the Editorialist for making the editorials.
    • If you do not provide all 5 of these requirements, your problem will not be considered!


  4. If we accept any of your problems, you must be available during the contest to resolve any issues pertaining to any of your problems.

  5. If we accept any of your problems, you must also answer the questions or any queries pertaining to the problems that you have set 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.

  6. No cheating! You are not allowed to participate in a contest that includes any of your problems. Also, you are not allowed to share any information about your problems or answers with anyone.

    • 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.

  7. No plagiarism. If we find you simply substituting names or numbers from other problems, we will not accept your problem.

  8. You are not allowed to share your submitted problems elsewhere without our prior consent.

  9. The scoring mechanism should always return positve scores. Negative scores will have undesirable effects under system ranking mechanism.


Long Contest Setting Guidelines

Our long contests begin on the first Friday of every month and lasts for 10 days.

Problem Types

Long Contest problems are classified into six categories: Cakewalk, Simple, Easy, Medium, Hard, and Challenge. For reference on these difficulty levels, take a look at some of our existing CodeChef contest problems:

  • May 2012 Long Challenge
  • April 2012 Long Challenge
  • March 2012 Long Challenge
  • February 2012 Long Challenge

Problem Submission

  • The Problem Setters have to submit their problems by the 1st of every month before the month of contest.
  • CodeChef Admins will select the problems out of all submitted problems by the 5th of the month before the month of contest
  • There may be multiple Problem Setters for each contest.

Sample Schedule

CodeChef Call for Problems Email January 15th
Problem Submission February 1st
Problems Selected and Testing starts February 5th
Problem Testing Ends February 25th
Contest Begins March 1

Compensation

  • $35 : $35 : $50 : $100 : $200 : $175 for each Cakewalk, Simple, Easy, Medium, Hard, Challenge problem respectively.
  • We pay 50% of the total compensation in advance. The rest is paid out after the successful finish of the contest in which your problem appeared. Refer payments for details on payment processing.

Cook-Off Setting Guidelines

Cook-Offs are short contests that take place over 2.5 hours on the second last Sunday of every month

Problem Types

Cook-Off problems are classified into five categories: Cakewalk, Simple, Easy, Easy-Medium, and Medium-Hard. For reference on these difficulty levels, take a look at some of our existing CodeChef contest problems:

  • The May 2012 Cook-Off
  • The April 2012 Cook-Off
  • The March 2012 Cook-Off
  • The December 2011 Cook-Off

Problem Submission

  • There will be only one Problem Setter for every Cook-Off. The entire problem set has to be prepared by the same Problem Setter.
  • The Problem Setter has to submit his problems by the 20th of month before the month of contest.

Sample Schedule

CodeChef Call for Problems Email January 1st
Problem Submission January 20th
Testing starts January 25th
Problem Testing Ends February 15th
Contest Begins February 19th

Compensation

  • $350 the entire problem-set.
  • We pay 50% of the total compensation in advance. The rest is paid out after the successful finish of the contest in which your problem appeared. Refer payments for details on payment processing.

Problem Testing

Want to test problems created for CodeChef contests? We need a bunch of hardcore problem solvers to solve and scour our new problems for errors. Our fearless Problem Testers certify the quality of problems before the rest of the programming world can even have a look at them!

We currently need Problem Testers for our Long Contests and our Cook-Off's. If you think you have what it takes, read the rules and apply to become a Problem Tester.

Problem Testing Rules

  1. For every problem set you test, you must provide:

    • Solutions with appropriate comments for understanding to all of the problems (duh)

    • A list of suggestions to improve the set of Test Cases

    • Verify and suggest appropriate Time Limits for test cases such that solutions in various programming languages should pass. It is to be noted here that time limits apply to the full test file (which can have multiple test cases) and not to individual test cases.

    • Suggest modifications to the constraints on the input as well.

    • Your opinion about the actual difficulty levels of the problems, which will be verified and approved by a CodeChef Admin.

    • Make sure that the right set (long contest / short contest) of the problems are used. Suggest changes to the problems or replacement of a problem to have appropriate difficulty levels.

    • Suggestions for improving the problem statements to remove any ambiguity and ensure very simple and correct usage of the English language. This is critical to the process of testing!

    • Review the editorials of each problem to adhere to the guidelines and suggest changes.


  2. For the contest that you test, you must be available during the contest to resolve any issues pertaining to any of the problems.

  3. For the contest that you test, you must also answer the questions or any queries pertaining to the problems that you have tested 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.

  4. No cheating! You are not allowed to participate in a contest that includes any of the problems you test. Also, you are not allowed to share any information about the problems or answers with anyone.

    • We're serious! Before you can test any problems, we require that you sign a Non-Disclosure Agreement saying that you won't cheat.

Long Contest Testing Guidelines

Problem Types

For long contests, Problem Tester must test all of the problems in a single contest set. This means that you will be testing:

  • 1 Cakewalk
  • 2 Simple
  • 2 Easy
  • 2 Medium
  • 2 Hard
  • 1 Challenge

For a better understanding of the difficulty levels, please have a look here.


Frequency and Schedule

  • To be eligible to test problems for a given month, you must inform us that you wish to do so 60 days prior to the month of the contest.

Compensation

We pay long contest Problem Tester according to the following structure:

  • $500 for testing each problem set.
  • We pay 50% of the total compensation in advance. The rest is paid out after the successful finish of the contest which you tested. Refer payments for details on payment processing.

CookOff Testing Guidelines

Problem Types

For Cook-Off contests, Problem Tester must test all of the problems in the contest set. This means that you will be testing:

  • 1 Cakewalk
  • 1 Simple
  • 1 Easy
  • 1 Easy-Medium
  • 1 Medium-Hard

For a better understanding of the difficulty levels, please have a look here.


Frequency and Schedule

  • To be eligible to test questions for a given month, you must inform us that you wish to do so 60 days prior to the month of the contest.

Compensation

We pay Cook-Off Problem Testers according to the following structure:

  • $200 for testing each problem set.
  • We pay 50% of the total compensation in advance. The rest is paid out after the successful finish of the contest which you tested. Refer payments for details on payment processing.

Editorials Writing

If you take pride in making things simple. If you posses a love for complex algorithms and like explaining them to eager enthusiasts making them easy to understand. If you have a good command over the English language. And to top it all, if you get elated from the stimulating algorithmic discussions while the problems are being baked in our kitchen before they are served to the rest of the world. You have all the ingredients to be our Editorialist.

As an Editorialist, you will be responsible for writing the editorials of all the problems in our contest.

We currently need Editorialists for our Long Contests and our Cook-Off's. If you think you have what it takes, read the rules and apply to become an Editorialist.

Editorial Writing Rules

  1. For every problem set you write the Editorials for, the guidelines for the Editorilas are as under:

    • Editorial must be in wiki markdown.

    • Editorial should be in simple, easy to understand English Language.

    • There should be links to pictures or references required to explain the concept. You may send us pictures to upload on our server, if you want to use them in the editorials.

    • Editorial should contain a very detailed explanation of the solution. The level of detail should be such that a newbie should be able to get guidance on learning those concepts required to solve the problem, provided that he or she invests sufficient time and effort into it.

    • Editorial should have an explanation on the approaches/concept/algorithm/technique of both the setter's and the tester's solutions. Any additional links/reference must be given.

    • Editorial should contain discussion of alternate approaches of solving the same problem.

    • Editorial may contain discussion of a few variants of the same problem. For example, some interestings variants of the problem that were found during testing process could be provided.

    • Please find some more tips to write Editorials and the Editorial Template here.
    • You must not miss on reading a very awesome write up on 'How to make a a good editorial' by Pradeep George Mathias.

  2. You must verify that the solution for all the problems provided by setter and tester should be commented for better understanding.

  3. It is encouraged that you also write your own solution strictly following the editorial. This ensures that the editorial explains all necessary tricks.

  4. It is expected that you will also monitor and answer the Questions/Doubts asked in editorial forum by the participants. Most of the questions are asked till 1-2 weeks after the contest ends.

  5. Apart from writing, editorials you will also be responsible for suggesting improvements in the problem statements to remove any ambiguity and ensure very simple and correct usage of the English language.

Long Contest Editorial Writing Guidelines

Problem Types

For long contests, the Editorialist must write editorials for all of the problems in a single contest set. This means that you will be writing an editorial for:

  • 1 Cakewalk
  • 2 Simple
  • 2 Easy
  • 2 Medium
  • 2 Hard
  • 1 Challenge

For a better understanding of the difficulty levels, please have a look here.


Frequency and Schedule

  • To be eligible to write editorials for a given month, you must inform us that you wish to do so 60 days prior to the month of the contest.

Compensation

We pay long contest Editorialist according to the following structure:

  • $200 for writing editorials for each problem set.
  • We pay 50% of the total compensation in advance. The rest is paid out after the successful finish of the contest which you have written editorials for. Refer payments for details on payment processing.

CookOff Editorial Writing Guidelines

Problem Types

For Cook-Off contests, the Editorialist must write editorials for all of the problems in a single contest set. This means that you will be writing an editorial for:

  • 1 Cakewalk
  • 1 Simple
  • 1 Easy
  • 1 Easy-Medium
  • 1 Medium-Hard

For a better understanding of the difficulty levels, please have a look here.


Frequency and Schedule

  • To be eligible to write editorials for a given month, you must inform us that you wish to do so 60 days prior to the month of the contest.

Compensation

We pay Cook-Off Editorialist according to the following structure:

  • $100 for writing editorials for each problem set..
  • We pay 50% of the total compensation in advance. The rest is paid out after the successful finish of the contest which you have written editorials for. Refer payments for details on payment processing.

Difficulty Levels

Long Contest Problems

We use six different types of problems of varying difficulty in our Long Contests:

  • 1 CAKEWALK: The problem should be solved by someone who knows any programming language and basic data structures like arrays and lists. No further knowledge should be considered mandatory to solve these problems. Example: MAXCOUNT.

  • 2 SIMPLE: These may or may not require some algorithms but whatever is required should be immediately obvious from statement, similar solution idea should be easily available in any text book, easily searchable, and more importantly should be very easily implementable. Almost zero genius is required. Example: LUCKY5 and WCOUNT.

  • 2 EASY: This should be fairly easy for most of the contestants to solve this problem without too many optimizations. A novice programmer should be able to solve it within his/her knowledge of programming. May not require knowledge of advanced data structures. Example: RHOUSE and LUCKY1.

  • 2 MEDIUM: These problems should require some more work for anyone to solve them. Advanced programming concepts like DP, Graphs, Trees or Mathematics etc, may be needed to solve them. May also require knowledge of advanced data structures. However it should not involve looking into research papers for the problems to be solved. Not easy to make. A novice programmer should not be able to solve them without putting in lot of effort. Example: BBSYSTEM and CYDB.

  • 2 HARD: These are the hardest to make. They should be able to challenge the best programmers out there for a 10 day contest. The idea to solve should be hard to come up with even with the knowledge of most advanced algorithms. Often, Problem Setters have made use of problems in research to get ideas regarding such problems. Example: FLYDIST, DOMNOCUT, WINDOW, SHORT2 and HYPER.

  • 1 CHALLENGE: All the above problems are binary problems (Either they give a full score of 1 or none 0). They are typically optimization problems (maximize or minimize). The best submission gets a score of 1 while the rest get scores relative to the points of the best submission. The difficulty of getting an accepted solution on the challenge problem should not exceed "Medium". Ideally it should lie between "easy" to "medium". Example: THREECLR, ALLINONE, BICKER, CAVE and L2GRAPH.

Cook-Off Problems

We use five different types of problems of varying difficulty in our Cook-Off competitions:

  • 1 CAKEWALK: Should be very straight forward. This should be solvable by everyone who comes to the site and who knows how to write code. No further knowledge should be considered mandatory to solve these problems. This is primarily put up to encourage new comers by giving them some gratification of solving a problem in a contest and make them try again and improve.

  • 1 SIMPLE: Not as straight forward as CAKEWALK. May not involve advanced concepts like Dynamic programming. Not a very tight bound optimization problem. This should be solvable by everyone who knows basic data-structures and programming.

  • 1 EASY: More difficult than the previous one. May involve slightly advanced data-structures and algorithms. It may require slightly more advanced concepts of data structures and algorithms, like DP, Graphs, Trees or Mathematics etc. Should be solvable by roughly 40%-50% of the contestants.

  • 1 EASY-MEDIUM: Needless to say, more difficult than the previous one. Should be solvable by only the good programmers. May involve advanced programming concepts and may be complicated to code. Only very serious programmers should be able to solve it.

  • 1 MEDIUM-HARD: It is fine if no one is able to solve it during the contest. This should challenge even the best programmer out there. Ideally only one or two people should be able to solve this problem in the given time. But this should not be a problem which requires going through a research paper. Even the top programmers should sweat it out to solve in the given 2.5 hours.

Conflict Resolution

  • If a Problem Tester finds any faults with a problem, the Problem Setter will have time to correct it until a consensus between the Tester and the Setter is achieved (subject to admin approval).

  • If the problem is found to be faulty after the contest starts, both the Problem Tester and the Problem Setter will have to forfeit the entire compensation amount paid for the problem.

Payments

For payment processing we have the following process:


  • For payments within India:

    • We issue Cheques and mail the same to the provided Postal Address
    • .
    • A Tax Deduction at Source @ 10% is done for every payment as per the Income Tax Guidelines under Section 194B. We issue a TDS certificate for the same at the end of the Financial year in which the payments are made.

  • For payments outside India:

    • We transfer the amount via PayPal.

    • For countries that do not permit PayPal transactions, we transfer the amount via Wire Transfer.

    • For Wire Transfers, each transaction incurs an additional cost of 25 USD. This cost we bear at our end. However, to keep this affordable, for any wire transfer payments we will make payment only once in every 2 months subject to a minimum payment of 200 USD. However, if the person wants to bear this cost, we can make the payment immediately.

    • Payments will be normally done after the end of a contest. It usually takes us about a week to process the payments.

    • Advance payments for any problem will be done along with the payment cycle for the contest being held in that month.

How to Get Started!

If you want to become a Problem Setter or a Problem Tester or an Editorialist for CodeChef, write an email to [email protected] with the following details:


  • Are you interested in Problem Creation, Problem Testing, Editorial Writing or all?

  • What previous experience do you have in the areas of problem creation and/or problem testing and/or writing techincal tutorials?

  • Your user handles on programming sites like TopCoder, CodeForces, SPOJ and CodeChef.

  • How much time will you be able to spend on this on a monthly basis?

  • How many problems can you create every month?

  • What level of difficulty of problems are you comfortable creating and testing?

  • Your phone number.

  • Your Chat ID on gtalk, so that we can get in touch quickly (Yes we need you to have a gtalk id as of now to connect).

  • Your Date of Birth and your present engagement/occupation.

  • Your Postal Address.

  • Your Bank Details and PAN Card No. (for Indians)

  • Your PayPal Id. (for non-Indians)

  • Your Wire Transfer details. (for non-Indians if your country of residence do not permit PayPal transactions)

Download the NDA from here. Sign it and send us the scanned copy of the same along with your mail.

In addition to all that, we want to you to send us a small assignment. Since problem setting requires good test data generation, this will involve making a test generator from a given test plan. You may read up on test plan generation here. All we need you to do is to create tests as well as the generator for the problem CAKEDOOM and send it to us along with your application.

Yes. For making payments it

admin @ 23 Jan 2013 03:57 PM

Yes. For making payments it is mandated.

A non-disclosure agreement

special_ @ 10 Jun 2014 06:28 PM
A non-disclosure agreement (NDA), also known as a confidentiality agreement (CA), confidential disclosure agreement (CDA), proprietary information agreement (PIA), or secrecy agreement, is a legal contract between at least two parties that outlines confidential material, knowledge, or information that the parties wish to share with one another for certain purposes, but wish to restrict access to or by third parties.

I am having the same prob..

1★rajmo @ 16 Jul 2014 06:59 PM
I am having the same prob..

@hellboy_86: Yes. you can.

admin @ 19 Sep 2014 01:55 PM

@hellboy_86: Yes. you can.

Workden, MNR PRIDE, 14, HAL Old Airport Rd, Domlur I Stage, 1st Stage, DOMLUR, Bengaluru, Karnataka 560071 [email protected] +91 95911 47880
Find us online

ROADMAPS

Learn Python
Learn Java
Learn C
Learn C++
Data structures and Algorithms
Competitive Programming
More Roadmaps

CAREER PATHS

React JS Developer
Full stack Developer
SQL for Data Analysis
Frontend Developer
Java Backend Developer
Data Analysis using Python
Python Backend Developer
C++ Developer
Machine Learning using Python

COMPILERS

HTML online compiler
C++ online compiler
C online compiler
Java online compiler
Python online compiler
SQL online compiler
JavaScript online compiler
React online compiler
More compilers

COMPANY

About us
For colleges
Coding Contests
Blogs
Contact us
Privacy Policy
Frequently Asked Questions

© 2025 CodeChef Inc. All rights reserved.

We use cookies to improve your experience and for analytical purposes. Read our Privacy Policy and Terms to know more. You consent to our cookies if you continue to use our website.