Guidelines for Contest and Challenge Creation

Contest Guidelines


How do I create a new contest?


  • Click on your username on the top right and click on the Administration menu item. Click on Create Contest on the right hand side.



  • Fill in all the fields and click Get Started. You must fill out all the fields (you can edit this information later).



  • Tip: Make the contest name meaningful and creative!

Overview Tab


  • Here you can edit the information that you have initially entered.

  • You can also customize the landing page, which is the first page that users will see before signing up for the contest. A typical landing page looks like this. You can customize the background, as well as change the rules, scoring and more.

Challenges Tab


  • Go to the challenges tab to add challenges for your contest. You can add any public HackerRank challenge, as well as challenges which you have created or have moderator privileges to.



  • A higher difficulty challenge should have a higher score.

  • If you enable the editorial, it will be visible after the contest ends. Editorials are great sources for learning, so we recommend you to enable it if available.

  • Normally, a user gets points for each test case that their solutions pass. But if you mark a problem Binary, the user will get points only if their solutions pass all the test cases.

Advanced Settings Tab


  • In the advanced settings tab, you can configure the leaderboard.



  • There are two types of leaderboards, HackerRank default and ACM style. We recommend the default leaderboard but you can select the type of leaderboard you want. In the default HackerRank leaderboard, there are two types of tiebreakers:
    • Sum: Tie is broken by the sum of time of first correct submission for all the problems.
    • Latest: Tie is broken by the time of the first correct submission of the last solved problem.

  • If you use the ACM leaderboard, all the problems will have binary score and you can set the time penalty as well.

Moderators Tab


  • In this tab, you can add your friends or colleagues as moderators. Moderators can do everything that you can do, so be careful.

Notifications Tab


  • During the contest if you have any updates, you can notify the contestants using this tab. The notification will be visible in loudspeaker icon on the upper right corner.

Signup Tab


  • See who signed up for your contest and who actually logged in during the contest.

Statistics Tab


  • See how many people signed up and how many people are in the leaderboard.

Challenge Guidelines


How do I create a new challenge?


  • Click on your username on the top right of the navigation and click on the Administration menu item. Then click on the Manage Challenges tab. This tab shows all the challenges that you own or you have moderator access to.



  • Press the Create Challenge button to get started.

Overview Tab


You will write the problem statement in this tab. An ideal problem-statement should contain:


  • Challenge Name: This will be the title of your challenge. Try to pick a creative and meaningful name.

  • Description: Write a one-line description of the main task which will be displayed when you share the problem link.

  • Problem Statement: Describe your challenge in details. A good problem-statement should be well-formatted and concise.

  • Input Format: Clearly describe how the Input is organized (focusing on distinguishing the number of inputs from the actual Input, and whether different parts of the Input are space-separated or in new lines).

  • Constraints: Mention the range of the variables you used to describe the problem statement. Constraints help the contestants to assess the input size and to figure out if his algorithm will terminate in alloted time.

  • Output Format: HackerRank challenges work by comparing STDOUT Output with the test cases. Clearly describe the Output format in the exact way that the Output should be generated by the programmer.

  • Sample Input/Output and Explanation: You should create two or more example of Input of whose the formatting matches the input test cases identically. Write a detailed explanation as to how the sample Input gives rise to the given sample Output by following the algorithm/requirements in the problem statement. You can create them by going to test cases tab.

Test Cases Tab




  • Add few test cases to test contestant’s code. You should mark at least 2 test cases as samples. The sample test-cases will be visible in the problem-statement. Put explanations in the sample test cases to help the users to understand the problem better.

  • For each test case, manually fill Input and Output fields or upload Input/Output files for each test case. Or You can create a zip locally containing two folders input and output and having the files named as input00.txt , output00.txt and so on. And upload the zip.

  • Assign proper strengths to the test cases. Suppose the strength of a test case is 10, and the sum of the strength of all the test cases is 50, then the contestants will get 10/50*100% = 20% of the maximum score if they pass that test case. The maximum score for a challenge can be set while adding it in a contest.

  • Tip: Add a variety of test cases, including few very basic test cases and tougher difficulty.


Code Stubs Tab


  • We have a code stub generator that can auto-generate the code of the input taking part. There is a link in the tab that explains how to use the code stub generator. Code-stubs help the users to understand how to take input from stdin.

Moderators Tab


  • In this tab, you can add your friends or colleagues as moderators. Moderators can do everything that you can, so be careful.

Languages Tab


  • You can select the allowed languages in this tab. Also for each language, you can select the time limit. Also, you can put a custom template in each language which will be visible in the code editor.

  • The author solution should take (time_limit/10) time. Eg. if the time limit for a problem is 2 seconds, then the author solution should take about 0.2 seconds for the worst case.

  • Take into consideration that interpreted languages, like Python, are slow. A program which runs for 2 sec in C++ can take nearly 30-40 second in Python.

Settings Tab


  • This tab contains various optional settings for challenges. All settings are explained in the interface.

Editorial Tab


  • Describe how to solve the problem. Editorial will be visible after the contest ends. You should clearly state the time complexity of the solution and your code should be well-formatted. If the solutions of the problem-setter and tester are different, both should be described in the editorial.

How can I test my own challenge?


  • Click on the preview button. You will see how your challenge looks like. Also you should submit code to make sure the test cases are correct.


Can I create challenges for HackerRank?


If you would like to become a paid contributor and have your challenge showcased in a HackerRank contest, then please complete this support form to submit your challenge.


We are open to challenges in any domain that involves programming, for example Algorithms, Artificial Intelligence, Machine Learning, Database.

  1. Challenge Walkthrough
    Let's walk through this sample challenge and explore the features of the code editor.1 of 6
  2. Review the problem statement
    Each challenge has a problem statement that includes sample inputs and outputs. Some challenges include additional information to help you out.2 of 6
  3. Choose a language
    Select the language you wish to use to solve this challenge.3 of 6
  4. Enter your code
    Code your solution in our custom editor or code in your own environment and upload your solution as a file.4 of 6
  5. Test your code
    You can compile your code and test it for errors and accuracy before submitting.5 of 6
  6. Submit to see results
    When you're ready, submit your solution! Remember, you can go back and refine your code anytime.6 of 6
  1. Check your score