Last active
August 29, 2015 14:01
-
-
Save Trindaz/f80951892fd32d31bd1d to your computer and use it in GitHub Desktop.
Fixes for score precision at https://www.codeeval.com/ranking/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Author
Trindaz
commented
May 7, 2014
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment