Sunday, August 11, 2013

FAQs-CodeVita 2K13

FAQs-CodeVita 2K13

Submission FAQs

How are evaluations processed?
CodeVita platform has a automatic grader which does the evaluation.The grader knows how to evaluate in the 7 supported languages.There is no manual intervention in the evaluation process, hence, no subjective biases. The grader expects input and output in specific formats for it to perform evaluation. For this reason,it is critical that your submission adheres to the input-output formats mentioned in the question text.The grader is responsible for compiling , running a battery of testcases  against your solution and validating your output.Various different output status codes and status messages are explained in rest of the document.
  
What is Presentation Error?
Presentation Error means that your answer is correct. It just has more (or less) than required number of whitespaces as compared to a "Accepted" solution. Presentation Error is treated as on par with Accepted solution. It is advised to not spend time on getting a Presentation Error status converted to Accepted. Participants should move to the next unsolved question without further delay.

What does the "Almost there, think some more" status message convey?
It conveys that your submission is failing at least one of the test cases. You should work on figuring out what test case your program could be failing and work on fixing it.
 
I get a Time Limit Exceeded status message. I know I have to optimize it, but to what extent?
Different questions have a different maximum upper bounds on the allowed run-time. Hence a generic answer to this question of the form -"Your program should execute in less than 500 msec is not possible". As long as you continue to receive this status code you must understand that your program is exceeding the threshhold set as maximum allowed time for solving this problem. In such cases, you should typically re-think your algorithm used for solving the problem. If your solution uses a brute force approach try figuring out an optimal algorithm for the same. Once you submit solution with optimal algorithm, this error should go away. This is just one example of handling TLE. There could be more ways. Bottomline is you have to optimize and you have to set you own targets for optimization.

 I get a Memory Limit Exceeded status message. I know I have to reduce memory footprint of the program but by how much?
Different questions have a different maximum upper bounds on the allowed memory consumption. Hence a generic answer to this question of the form -"Your program should execute in less than 20 MB of memory is not possible". As long as you continue to receive this status code you must understand that memory consumption of your submitted code is more than allowed limits. Also, different languages have different memory limits for the same problem. So if you are proficient in more than one language, try re-writing code in another language.

Within how much time can I expect my submission to be graded?
This question is difficult to answer. When the system is lightly loaded you can expect your submissions to be graded in less than 30 seconds.However under peak loads, submissions get queued up for evaluation. Depending on the size of evaluation queue, response time can shoot up to a few minutes. At our end, we have done our due diligence and invested in adequate capacity to ensure that queue build-ups are minimal.

My submission never got evaluated. What went wrong?
Most likely cause of this is that your code uses a blocking function like for e.g. getch() in C. This type of blocks forever and prevents the grader from running properly. Likewise, other blocking calls in other languages have the same effect. These evaluations fail and the system simply swallows the failure (unix-style). Avoid blocking calls in your program.Other possibility is that there is a huge queue build-up on the grader and your submission is simply waiting in the queue.

My code compiles on my machine, the system shows my submission has Compile-Time Errors. How is this possible?
  • Firstly, ensure that you are using the same compiler that the CodeVita system is using. For e.g. do not use Turbo C and expect the code to be compiled on CodeVita systems which uses gcc.
  • Secondly, even if you are using the same compiler, check if you are using a version higher than what CodeVita system is using. For e.g if CodeVita system is using Oracle JDK 1.6 and you are using  Oracle JDK 1.7, its likely that your code may fail to compile because new features of 1.7 are not available in 1.6.
  • Finally, if you using same compiler of the same version that the CodeVita system is using, it is still possible to get a Compile Time Error.This is because CodeVita systems will use certain compilation flags which you may not have used in your system. In such cases, the Compile-time error message that CodeVita systems will depict should be carefully studied. If you pay enough attention to the error message, you should be able to figure out cause of CTE and then eliminate it.
Is one language recomended over other languages in CodeVita system?
No, you can submit solution in any 7 supported languages, depending on your preference. The right way to approach this is to figure out which language is most suited for a given problem type.
CodeVita systems will support all langauges for all questions. You should pick a language which is best suited for a given question for optimal results.
 
Can I switch languages in a attempting to solve same problem?
Yes, you can attempt solving the same question in more than one language. Your aim is to give optimize solution for a problem. Optimality order is
  • minimum time it takes to solve the given problem
  • efficiency - ie minimum system resource consumption.
 
What do you mean by "Both members are expected to solve problems"?
It simply means that team work is expected. If one team member is working on one problem, other should work on other problem to maximize chances of earning higher scores. Likewise, the working solution should be submitted through id of the member whose contribution is more in solving that problem. Submitting a solution for the same through both team members ids is niether expected nor required. Objective is to maximize team score without losing visibility into individual performances.
 
 
Contest FAQs

How long is the first round of CodeVita and what is my contest duration?
First round of CodeVita runs in a 24-hr window between 3 PM on 13th August to 3 PM on 14th Aug. Each team will get maximum of 6 hrs to solve the problems. The first round has a hard-stop at 3 PM on 14th August. In order to avail fill 6 hrs, teams should start their individual contests before 9 AM on 14th August.If a team starts its contest after 9 AM on 14th August, they will get time only upto 3 PM to solve the questions asked in the contest.

When does the contest start for a team and for an individual?
The contest starts for a team as soon as one member of the team starts the contest. This time plus 6 hrs, subject to 1) above, is the contest duration of the entire team. Ideally, both members of the team should begin the contest simultaneously for both members to get full 6 hrs. However for some reason, if one team member starts the contest earlier than his / her team mate, the contest end time even for the second member will be first user contest start time + 6 hrs.
 
e.g. A and B are team mates and their team is Team1.
  • If, A starts the contest at 3 PM, the contest end time for Team1 is 9 PM. It does not matter when B starts the contest.
  • Similarly, If B starts the contest at 3 PM, the contest end time for Team1 is 9 PM. It does not matter when A starts the contest.
  • Contest is started when the first member, either A or B, enters the Coding Arena.
 
Does seeing the Full Problem statement have any significance?
Yes, clicking on "View Full Problem" button starts the timer for that problem. This timer is maintained internally by the system and is not displayed unlike the contest timer. Again, like contest start, the first member's time of viewing the problem will be taken as the start time of that problem for that team. Problem start time has significance in Gamification. So every participant should be judicious in his / her approach before letting the timer start for that problem. Before clicking on the "View Full Problem", it is highly recommended to View stats for that problem. The stats for that problem shows a graph of solving probability over time for that problem. Lower the probability, tougher the question and vice-versa. Participants should make use of this fact to maximize their scores.
 
How is Ranking done?
Ranks are calculated per team only. Best submissions for each problem across both members are taken into consideration while assigning scores. To maximize scores, it is advised that individual members of team work on different problems. However, this is only a suggestion. Teams can collaborate in way they see fit in order to maximize their own chances.
 
I was ranked in Top N at the end of my contest time. Will my rank remain the same throughout?
No. Your rank may change. Ranks are calculated across entire duration of the contest. What you see at the end of your contest time is a point in time representation of your rank. This representation may change based on how people still participating in the contest are doing.
 
Why didnt I get my allotted quota of 6 hrs during the contest?
Refer fist two questions of this section.
 

3 comments:

  1. is presentation error is as good as accepted? Or there is difference in points awarded for Accepted solution Or a solution with presentation error?

    ReplyDelete
  2. Will there be any points for almost there compilations ?

    ReplyDelete
  3. Will there be points for sample test
    cases?

    ReplyDelete