Задача из тренировок по алгоритмам яндекса. Не могу понять почему мое решение не проходит по памяти и как можно его оптимизировать
мой код
with open('input.txt', 'r') as f:
n, m = map(int, f.readline().split())
a = list(map(int, f.readline().split()))
a.sort()
intervals, max_r = [], 0
for i in range(m):
l, r = map(int, f.readline().split())
intervals.append([l, r])
max_r = max(max_r, r)
cats = [0] * (max_r + 1)
j = 0
for i in range(max_r + 1):
while j < len(a) and i == a[j]:
j += 1
cats[i] = j
ans = []
for interval in intervals:
left = interval[0] - 1
right = interval[1]
if left >= 0:
ans.append(cats[right] - cats[left])
else:
ans.append(cats[right])
print(*ans)
Попробуй переместить важные позиции в позиции от 1 до (кол-во важных точек), так чтобы их относительный порядок не изменился, и в них происходило то что происходит в их настоящих позициях.