diff --git a/task_3.py b/task_3.py index 0e97389..c0309f3 100644 --- a/task_3.py +++ b/task_3.py @@ -92,10 +92,38 @@ def find_intersection(interval_A, interval_B) -> list: return [interval_begin, interval_end] +def enlarge_elapsed_intervals(intervals): + # ключ - начало, значние - конец. Если по ключу "начало" уже есть + # значение, то сохраняем max(существующее, новое) + beginnings = {interval[0]: interval[1] for interval in intervals} + endings = {interval[1]: interval[0] for interval in intervals} + + for interval in intervals: + begin = interval[0] + end = interval[1] + + beginnings[begin] = max(beginnings[begin], end) + endings[end] = min(endings[end], begin) + + print(f"{beginnings=}") + print(f"{endings=}") + beginnings_list = list(beginnings.values()) + endings_lsit = list(endings.values()) + test = [ + [endings_lsit[i], beginnings_list[i]] for i in range(len(beginnings_list) - 1) + ] + return test + + def appearance(intervals): lesson = intervals["lesson"] pupil = intervals["pupil"] tutor = intervals["tutor"] + pupil2 = [pupil[i : i + 2] for i in range(0, len(pupil), 2)] + # print(f"{pupil2=}") + # pupil2 = enlarge_elapsed_intervals(pupil2) + + enlarge_elapsed_intervals(test) # получаем все интервалы студента на уроке pupil_on_lesson = [