from collections import Counter

def task_scheduler(tasks, n):
    if not tasks:
        return 0
    counts = Counter(tasks)
    maximum = max(counts.values())
    tied = sum(value == maximum for value in counts.values())
    return max(len(tasks), (maximum - 1) * (n + 1) + tied)
