最近开始做codeeval的题目,评分标准比较有趣,用代码说明的:
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 = 20 * 1024 * 1024 # 20 MB
max_time = 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 #memory用的越少越好
time_factor = 1 - time_taken/max_time #time用的越少越好
factor = (memory_factor + time_factor)/2
return score * max_total_score * factor / 100 #分数是根据memory和time算出来的