National Coding Olympiad 2021 Code Battle is a coding competition for Grade 9-12 students. It is specifically designed for school students to help them prepare for IOI (International Olympiad in Informatics).
- You will get 20 problems to solve in 3 hours using either C, C++, Java, or Python.
- Each problem statement will have points associated with it.
- Points increase as problems get more difficult.
- The leaderboard will be updated in real-time and the student with the highest point will be the winner.
Competition Date & Time: January 15, 2022, at 11 AM
All submissions are evaluated by the online judge. The problems will be partially graded, which means, you will be awarded points for passing each test case. There are no penalties for incorrect submissions. Feel free to submit as many solutions as you want, the best correct submission will be considered by the online judge.
How to register for the competition?
- Click on the "Register Now" Button.
- Enter your phone number and verify it by filling in the OTP received.
- Complete the registration by filling in the below information in the form.
- Student's Name
- Mobile Number
- Parent's Name
- School Name
4. Tap on the "Register for competition" button.
How to enter the competition?
Once you have registered for the competition, you will see a "Start Now" button on the competition day, i.e. January 15, 2022, at 11 AM. Tap on it and start solving the problems
Terms & Conditions
Those who have passed Class 12 in 2021 are not allowed to participate.
If Codingal detects plagiarism, you will be disqualified and not be eligible to claim your prizes.
1. Is this competition online?
Yes, this competition is 100% online. The students can participate as long as they have access to a computer/laptop and an internet connection.
2. How much does it cost to enter into this competition?
There is no registration fee to participate in the competition.
3. What type of problems will be part of the competition?
There will be coding problems to solve using C, C++, Java, and Python. It will consist of 10 coding problems that will help you prepare for the competition.
4. How do I prepare for the competition?
We recommend that you solve practice problems in the Practice Arena. This will help you to understand how to participate in the main competition. It comprises detailed information about how programming questions should be attempted and details about the Codingal evaluation system.
6. Will I receive a reminder notification before the competition begins?
You will receive a reminder e-mail and call 3 hours before the challenge begins only if you have registered for the competition.
7. Can I participate in the competition from a mobile?
No. We don't support mobile devices yet for participating in the competition. We suggest you participate in the competition from a laptop/desktop.
8. What type of problems will I have to solve in this competition?
All problems in this competition will be coding problems.
- Write code in the online code editor that is provided with each problem and submit it.
- You can make multiple submissions. The platform automatically considers the best submission.
Here is the link to the IOI Algorithms Preparation Guide. This guide will help you practice coding-related problems that are similar to the questions that will be a part of the competition.
9. Are the programming problems restricted to specific languages?
The languages that you can write code are mentioned in the challenge details, if applicable.
10. What will happen in case there is an issue with my computer or Internet connection?
If there is an issue with your computer or your Internet connection, you will not lose your previously submitted answers. They will be saved on Codingal's servers. You can log in again and continue coding from where you left off. However, the timer will continue running, which is why it is advised that you ensure that your computer/Internet connection is working properly before you begin the challenge.
11. How do I Test & Submit my code?
Every problem has the following two buttons:
When you click Test, the code is tested against the sample input and output. You can provide your own custom input too.
This ensures that you are able to test your code against predefined sample test cases before you submit your code.
When you click Submit, the code is checked extensively against internal test cases. The following parameters are considered while checking the code:
Time limit: The code should run within the stipulated time otherwise, it will throw a Time Limit Exceeded (TLE) error.
Memory limit: The code should run within the given memory size otherwise, it will throw a Memory Limit Exceeded (MLE) error.
Errors during runtime: Specific test cases check for Runtime Errors (RE) only.
Correct answer: If your answer is incorrect, then you will see the message Wrong Answer (WA) on the screen. This means that your program is not printing the correct answer. Ensure that your program conforms with the output format that is required.
12. Is it possible to change my submission after I have submitted my code?
Yes, you can edit and submit your code for a problem any number of times before the completion time window closes.
13. How does Codingal's evaluation engine determine whether my program is correct?
The Codingal's evaluation engine is an automated code checker for every program and not a human being. The code checker tests your code automatically. Therefore, you must write your code accordingly.
For each problem, based on the specifications mentioned in the problem statement, there will be one or more input files and corresponding (correct) output files. The program that you create is run on each of the input files, and the corresponding output must match the (correct) output files in order.
Your program will be marked incorrect in the following cases:
Output files (generated by running your code) do not match the pre-generated output files.
Output files (generated by running your code) match all the pre-generated output files; however, it is not in the order in which the pre-generated output files are arranged.
14. How does the time limit work?
Your program must read, process, and output the result for all input files within the specified time limit.
The input file will be in the format that is specified in the problem. This means that if each input file contains multiple test cases, then your code must pass all the test cases within the specified time limit.
15. How does the total execution time work?
Your code is tested multiple times against different input files. The displayed execution time is the total time spent executing each input file. Hence, Total execution time <= (Time Limit * Number of input files)
Your program is terminated in the following scenarios:
If the time that is required to execute each input file exceeds the time limit execution that is set for any input file.
If the total time that is required to execute all the input files exceeds the total time limit allowed.
16. How does the total memory consumed work?
The total memory consumed by a program is the sum of the memory that is consumed by the program in stack, data, heap, and BSS. To understand more about the address space of a program and the memory consumed, refer to this explanation.
17. My program doesn't compile. Why?
Ensure that you are using an updated compiler that complies with the standards.
For example, do not use Turbo C++. Code that compiles in Turbo C++ will often not compile on the online judge.
Also, remove 'conio.h includes' in your code.
We support multiple classes and inner static classes.
Your code may throw errors if the inner classes are not static.
Please note that we will remove this constraint very soon. We will update you when this happens.
The compilation errors that you see on the screen are self-explanatory.
However, if you require any more information, please write your query in the comments or send us a chat message.
We recommend you to write code directly in the code editor provided for every problem and not use the local compiler to run your code.
18. Does TLE error mean that my code is correct but slow?
No, Time Limit Exceeded or TLE means that your solution has exceeded the amount of time that is allowed for problem execution or for a specific test case. Your solution never finished running in time, and it was stopped in between. There is no definite way to know whether the code was correct.
19. What does Wrong Answer (WA) mean?
WA means that your program ran successfully but gave an incorrect answer. This could mean either of the following:
Your program contains a bug.
You have not interpreted the problem statement correctly.
Apart from the sample input, your code will also be evaluated against multiple input and output cases. Therefore, even if your code passes the sample input correctly, it may not have passed one of the other input and output cases.
20. What happens if I indulge in plagiarism?
We take cheating/plagiarism very seriously. You will be disqualified from the competition, and your account may be permanently blocked on Codingal.
21. Why is my submission queued?
Your submission is queued because of simultaneous submissions by multiple users. You will receive the result of your submission in real-time as soon as it is processed. Please wait for some time to receive the result of your program.
22. My submissions are not evaluated. What should I do?
There may be an issue with the online judge due to which your submissions are not being evaluated. Send an e-mail to firstname.lastname@example.org or send a chat message.
23. When will I receive the results of the competition?
You can view your ranking on the leaderboard. This leaderboard is updated in real-time and you can see where you stand.
24. Where can I view the solutions for the problems of this competition?
Once the competition is over, we will publish the solutions. Keep a watch on this page to view and download all the solutions.
25. Why do I see a runtime error when I submit my program?
A runtime error means that the program was compiled successfully, but it crashed or exited with an error. The most common error messages include the following:
|1||SIGSEGV||Segmentation fault error||Caused by an out-of-scope array index causing a buffer overflow, an incorrectly initialized pointer, etc.
Signal is generated when a program tries to read or write outside the memory that is allocated for it, or to write memory that can only be read.
For example, you are accessing a[-1] in a language that does not support negative indices for an array.
|2||SIGXFSZ||Output limit exceeded error||Your program has printed too much data to output.|
|3||SIGFPE||Floating point error||This usually occurs when you're trying to divide a number by 0, or trying to take the square root of a negative number.|
|4||SIGABRT||Raised by the program||This happens when the judge aborts your program in the middle of execution.
This can also be raised due to insufficient memory.
|5||NZEC||Non-zero exit code error||This message means that the program exited to the shell by returning a value that is different from 0.
For languages such as C/C++, this probably means you forgot to add "return 0" at the end of the program.
It could happen if your program threw an exception that was not caught. Trying to allocate too much memory in a vector.
For interpreted languages like Python, NZEC will usually mean that your program either crashed or raised an uncaught exception.
Some of the reasons being in such cases would be: the runtime errors mentioned above. Or, for instance usage of an external library which is causing some error, or not being used by the judge.
|6||MLE||Memory limit exceeded error||This error means that your program tried to allocate memory beyond the memory limit indicated.
This can occur if you declare a very large array, or if a data structure in your program becomes too large.
|7||OTHER||Generated when you use too much memory||Check for arrays that are too large, or other elements that could grow to a size too large to fit in memory.
Sometimes it can also be generated for reasons similar to the SIGSEGV error.
26. How do I avoid runtime errors?
Ensure that you are not using variables that haven't been initialized. These may be set to 0 on your computer but aren't guaranteed to be on the judge.
Check every single occurrence of accessing an array element and see if it could possibly be out of bounds.
Ensure that you are not declaring too much memory. 64 MB is guaranteed, but having an array of size  will never work.
Ensure that you are not declaring too much stack memory. Any large arrays should be declared globally, outside of any functions - putting an array of 100000 ints/integers inside a function probably will not work.