Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import defaultdict
- amount = int(input())
- numbers = list(map(int, input().split()))
- counter = defaultdict(int)
- counts = defaultdict(set)
- max_prefix = 0
- for index in range(amount):
- old_count = counter[numbers[index]]
- new_count = old_count + 1
- counter[numbers[index]] = new_count
- if old_count:
- counts[old_count].discard(numbers[index])
- if len(counts[old_count]) == 0:
- counts.pop(old_count)
- counts[new_count].add(numbers[index])
- if len(counts) == 1 and min(counts) == 1:
- max_prefix = index
- if len(counts) == 2:
- max_count = max(counts)
- min_count = min(counts)
- if min_count == 1 and len(counts[min_count]) == 1:
- max_prefix = index
- if max_count - min_count == 1 and len(counts[max_count]) == 1:
- max_prefix = index
- print(max_prefix + 1)
Advertisement
Add Comment
Please, Sign In to add comment