mfgnik

Untitled

Mar 4th, 2023 (edited)
735
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. from collections import defaultdict
  2.  
  3.  
  4. amount = int(input())
  5. numbers = list(map(int, input().split()))
  6. counter = defaultdict(int)
  7. counts = defaultdict(set)
  8. max_prefix = 0
  9. for index in range(amount):
  10.     old_count = counter[numbers[index]]
  11.     new_count = old_count + 1
  12.     counter[numbers[index]] = new_count
  13.     if old_count:
  14.         counts[old_count].discard(numbers[index])
  15.         if len(counts[old_count]) == 0:
  16.             counts.pop(old_count)
  17.     counts[new_count].add(numbers[index])
  18.     if len(counts) == 1 and min(counts) == 1:
  19.         max_prefix = index
  20.     if len(counts) == 2:
  21.         max_count = max(counts)
  22.         min_count = min(counts)
  23.         if min_count == 1 and len(counts[min_count]) == 1:
  24.             max_prefix = index
  25.         if max_count - min_count == 1 and len(counts[max_count]) == 1:
  26.             max_prefix = index
  27. print(max_prefix + 1)
  28.  
Advertisement
Add Comment
Please, Sign In to add comment