rockclimberЕсли опустить скучные детали считывания данных, то:
У меня есть структура для блокировок, которая хранит диапазон заблокированных ресурсов и время, когда они освободятся.
Я создаю вектор из таких структур и каждую новую блокировку, если она принята, добавляю в вектор.
Процесс принятия/отклонения блокировки такой: я прохожусь по вектору блокировок и рассматриваю каждый элемент. Если блокировка уже неактивна, то удаляю ее, и перехожу к следующей. Если она активна, то смотрю, не пересекается ли она с новой блокировкой. Если пересекается, то вывожу
No и выхожу из цикла, если не пересекается, то перехожу к следующей блокировке из вектора.
Если я так и не нашел активную блокировку, которая пересекается с новой блокировкой, то добавляю новую блокировку в вектор и печатаю
Yes.
Появилась другая идея: попробую отсортировать массив по уменьшению времени и дойдя до неактивной блокировки буду отсекать хвост. Но уже вечером. Если сработает, напишу сюда. Спасибо за помощь
Geen,
rockclimber