2021-07-28 22:58:42 +00:00
|
|
|
from judge.models import SubmissionTestCase, Problem
|
2020-12-01 23:18:17 +00:00
|
|
|
|
2021-01-29 04:43:10 +00:00
|
|
|
from collections import defaultdict
|
2020-12-01 23:18:17 +00:00
|
|
|
|
|
|
|
def generate_report(problem):
|
|
|
|
testcases = SubmissionTestCase.objects.filter(submission__problem=problem).all()
|
|
|
|
|
|
|
|
score = defaultdict(int)
|
|
|
|
total = defaultdict(int)
|
|
|
|
rate = defaultdict(int)
|
|
|
|
|
|
|
|
for case in testcases.iterator():
|
|
|
|
score[case.case] += int(case.status == 'AC')
|
|
|
|
total[case.case] += 1
|
|
|
|
|
|
|
|
for i in score:
|
|
|
|
rate[i] = score[i] / total[i]
|
|
|
|
|
|
|
|
for i, _ in sorted(rate.items(), key=lambda x: x[1], reverse=True):
|
2021-07-28 22:58:42 +00:00
|
|
|
print(i, score[i], total[i], rate[i])
|