Python Equi Leader
def equi_leader(a: list[int]) -> int:
    leader_size = value = 0
    for v in a:
        if leader_size == 0:
            leader_size += 1
            value = v
        elif value != v:
            leader_size -= 1
        else:
            leader_size += 1
    candidate = value if leader_size > 0 else -1

    count = len(a)
    leader_count = sum(1 for v in a if v == candidate)
    leader = candidate if leader_count > count / 2 else -1

    l_leader_count = 0
    equi_leaders = 0
    for k, v in enumerate(a):
        left_half = (k + 1) // 2
        right_half = (count - k - 1) // 2
        if v == leader:
            l_leader_count += 1

        r_leader_count = leader_count - l_leader_count
        if l_leader_count > left_half and r_leader_count > right_half:
            equi_leaders += 1

    return equi_leaders

This keeps leader counts on both sides of the split and counts positions where the same leader survives in each half.