Fix rerate logic (DMOJ)
This commit is contained in:
parent
297b8a2a36
commit
b45de198ba
10 changed files with 77 additions and 78 deletions
|
@ -13,22 +13,3 @@ def ranker(iterable, key=attrgetter('points'), rank=0):
|
|||
yield rank, item
|
||||
last = key(item)
|
||||
|
||||
|
||||
def tie_ranker(iterable, key=attrgetter('points')):
|
||||
rank = 0
|
||||
delta = 1
|
||||
last = None
|
||||
buf = []
|
||||
for item in iterable:
|
||||
new = key(item)
|
||||
if new != last:
|
||||
for i in buf:
|
||||
yield rank + (delta - 1) / 2.0, i
|
||||
rank += delta
|
||||
delta = 0
|
||||
buf = []
|
||||
delta += 1
|
||||
buf.append(item)
|
||||
last = key(item)
|
||||
for i in buf:
|
||||
yield rank + (delta - 1) / 2.0, i
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue