Skip to content

Instantly share code, notes, and snippets.

@Trindaz

Trindaz/code_eval_score.py

Last active Aug 29, 2015
Embed
What would you like to do?
Fixes for score precision at https://www.codeeval.com/ranking/
def get_submission_score(score, memory_taken, time_taken, category):
"""
@param score: the score which is received by test-cases
@param memory_taken: memory taken by submission
@param time_taken: time taken by submission
@param category: Easy(1)/Moderate(2)/Hard(3)
"""
total_max = {
1: 35, # max 35 points for Easy challenge
2: 65, # max 65 points for Moderate challenge
3: 100 # max 100 points for Hard challenge
}
max_memory = float(20 * 1024 * 1024) # 20 MB
max_time = float(10 * 1000) # 10 sec
# if submission takes more than 10 seconds
# or uses more than 20MB of memory
# the score is 0
if memory_taken > max_memory or time_taken > max_time:
return 0
max_total_score = total_max[category]
memory_factor = 1 - memory_taken/max_memory
time_factor = 1 - time_taken/max_time
factor = (memory_factor + time_factor)/2
return score * max_total_score * factor / 100
@Trindaz

This comment has been minimized.

Copy link
Owner Author

@Trindaz Trindaz commented May 7, 2014

diff -w code_eval_score.py code_eval_score_original.py 
14,15c14,15
<     max_memory = float(20 * 1024 * 1024)  # 20 MB
<     max_time = float(10 * 1000)  # 10 sec

---
>                 max_memory = 20 * 1024 * 1024  # 20 MB
>                 max_time = 10 * 1000  # 10 sec
29a30
>             
\ No newline at end of file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.