CodeChef is a non-commercial competitive programming community
Login
Username (New User? Signup) Password (Forgot Password?)
Signup
Login or
Signup with
Connect
Note
  • Publicize your achievements on your Facebook Wall.
  • Challenge your friends or ask them for help.

Site Navigation

  • PRACTICE
    • Easy
    • Medium
    • Hard
    • Challenge
    • Peer
  • COMPETE
    • February Long Contest
    • January CookOff
    • January Long Contest
  • DISCUSS
    • Wiki
    • Forums
    • Blog
    • Twitter
  • COMMUNITY
    • CodeChef Meetups
    • Campus Chapters
    • Host your Contest
    • User Groups
    • CodeChef TechTalks
    • All Educational Initiatives
    • Event Calendar
  • HELP
    • Frequently Asked Questions
    • FAQ for problem setters
    • Problem Setting
    • Ranks
    • Tutorials
  • ABOUT
    • About CodeChef
    • Team CodeChef
    • Press Room
    • CodeChef Financials
    • CodeChef Sponsorships
    • CEO's Corner
    • Contact Us
    • About Directi
Home » Wiki » Codechef Problem Creation

Codechef Problem Creation

 

Table of Contents 
  1. Problem Setting
    1. Problems Setting Rules
    2. Long Contest Problem Guidelines
    3. Cook-Off Problem Guidelines
  2. Editorials
  3. Problem Testing
    1. Problem Testing Rules
    2. Problem Testing Guidelines for Long Contests
    3. Problem Testing Guidelines for Cook-Offs
  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 for our traditional long contests and our shorter Cook-Offs. If you're interested in contributing, read the rules below and send us an email to apply to become an official CodeChef Problem Setter or Tester.

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 difficult, fun problems for our contests.

We need problems for both our Traditional Long Contests and our Shorter 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 must be "Chef"-ified :-).

  3. Avoid inline css styles in problem statements.

  4. For every problem you submit, you must provide:

    • The problem (duh)

    • The solution (duh)

    • Test Cases

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

    • An editorial explanation for the problem, which will be published at the end of the contest for the contestants. This is the most important part of setting a problem. A good problem is only half useful if it does not have a good editorial. Refer Editorials for guidelines.

    • If you do not provide all 5 of these requirements, your problem will not be considered!


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

  6. If we accept any of your problems, you must also answer the questions or any queries pertaining to the problems that you have set at the end of the contest.

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

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

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


Long Contest Problem Guidelines

Our traditional long contests begin on the first day 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:

  • February 2012 Long Challenge
  • January 2012 Long Challenge
  • December 2011 Long Challenge
  • November 2011 Long Challenge

Problem Submission

  • The Problem Setters have to submit their problems by the 1st of 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 : $150 : $125 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 Problem 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 December 2011 Cook-Off
  • The November 2011 Cook-Off
  • The September 2011 Cook-off
  • The January 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.

Editorials

  • Editorial must be in HTML format.

  • Editorial should be elaborate and easy to understand, providing necessary references with links. We appreciate links to any pictures or references that you would like to use. You may also send us any pictures to upload on our server, if you have used them in your editorials.

  • Editorial should contain a very detailed explanation of the solution. The level of detail should be such that a new comer 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.

  • Discussion of some alternate approaches of solving the same problem in the Editorial will be very much appreciated.

  • Discussion on a few variants of the same problem in the Editorial will be even more appreciated.

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 Traditional Long Contests and our Shorter 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 to all of the problems (duh)

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

    • Verify and suggest appropriate Time Limits for each test case such that solutions in various programming languages should pass.

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

    • 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 tested at the end of the contest.

  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.

Problem Testing Guidelines for Long Contests

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 questions for a given month, you must inform us that you wish to do so by the 1st day of the month before the month of the contest.

Compensation

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

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

Problem Testing Guidelines for Cook-Offs

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 by the 1st day of the month before the contest.

Compensation

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

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

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 be solve them. Advanced programming concepts like DP, Graphs, Tress 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 solvable by everyone who know 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, Tress 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 for CodeChef, write an email to problems@codechef.com with the following details:


  • Are you interested in Problem Creation, Problem Testing, or both?

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

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


Comments

  • Login or Register to post a comment.

CodeChef is a non-commercial competitive programming community
  • About CodeChef
  • About Directi
  • CEO's Corner
  • C-Programming
  • Programming Languages
  • Contact Us
© 2009 Directi Group. All Rights Reserved. CodeChef uses SPOJ © by Sphere Research Labs
In order to report copyright violations of any kind, send in an email to copyright@codechef.com
CodeChef a product of Directi
The time now is:
CodeChef - A Platform for Aspiring Programmers

CodeChef was created as a platform to help programmers make it big in the world of computer programming. At CodeChef we work hard to revive the geek in you by hosting programming contests on a monthly basis. We also aim to have training sessions and events related to online programming for programmers around the world. Apart from providing a platform for programming competitions, CodeChef also has various tutorials and forum discussions to help those who are new to the world of computer programming.

Practice Section - A Place to hone your 'Computer Programming Skills'

Try your hand at one of our many practice problems and submit your solution in a language of your choice. Our judge accepts solutions in over 35+ programming languages. Online programming was never this much fun! Receive points, and move up through the CodeChef ranks. Use our practice section to better prepare yourself for the multiple programming competitions that take place through-out the month on CodeChef.

Compete - Monthly Programming Contests and Cook-offs

Here is where you can show off your computer programming skills. Take part in our 10 day long monthly programming contests and the shorter format Cook-off programming contests. Put yourself up for recognition and win great prizes. Prizes worth up to Rs.20,000 and $700 are up for grabs every month along with lots more CodeChef goodies.

Discuss

Are you new to computer programming? Do you need help with algorithms? Then be part of CodeChefs Forums and interact with all our programmers love helping out other programmers and share their ideas.

CodeChef Community

As part of our Educational initiative, we give institutes the opportunity to associate with CodeChef in the form of Campus Chapters. Hosting online programming competitions is not the only feature on CodeChef. Be a part of the CodeChef community through CodeChef meetups and techtalks. You can also host a programming contest for your institute on CodeChef and be a guest author on our blog.

Domain Name Registration, Web hosting, and Website Design provided by BigRock.com