Хранилище данных может обрабатывать запросы на чтение и запись данных в соответствии со следующими принципами:
1. Запросы на чтение данных могут выполняться параллельно. Если в момент появления запроса на чтение данных хранилище не занято обработкой какого-либо запроса, поступивший запрос начинает немедленно выполняться. Если в момент появления запроса на чтение данных хранилище обрабатывает один или несколько других запросов на чтение данных, вновь поступивший запрос также начинает немедленно выполняться. При этом количество одновременно выполняющихся запросов на чтение данных не влияет на время выполнения отдельного запроса.
2. Запросы на запись данных могут выполняться только отдельно. Если в момент появления запроса на запись данных хранилище не занято обработкой какого-либо запроса, поступивший запрос начинает немедленно выполняться. Если в момент появления запроса на запись данных хранилище обрабатывает другой запрос на запись данных или запрос(ы) на чтение данных, поступивший запрос на запись данных помещается в конец очереди запросов на запись данных.
3. Если запрос на чтение данных появляется в момент времени, когда хранилище обрабатывает запрос на запись данных, этот запрос помещается в очередь запросов на чтение данных.
4. Если хранилище закончило обрабатывать запрос на запись данных, но в очереди остались еще запросы на запись данных или в этот момент времени появился новый запрос на запись данных, будет обрабатываться запрос на запись данных, независимо от наличия очереди из запросов на чтение данных.
5. Если хранилище закончило обрабатывать запрос на запись данных, в очереди нет больше запросов на запись данных и в этот момент времени не появился новый запрос на запись данных, начнут параллельно обрабатываться все имеющиеся в очереди и/или появившиеся в этот момент запросы на чтение данных.
6. Если в один и тот же момент появились запросы на чтение и на запись данных, и нет обрабатываемых в этот момент времени других запросов, будет выполняться запрос на запись данных, а запрос на чтение данных будет помещен в очередь.
7. Если запрос на чтение данных появляется в момент времени, когда хранилище не обрабатывает никаких запросов, но есть невыполненные запросы в очереди запросов на запись данных, то начнет обрабатываться очередной запрос из очереди запросов на запись данных, а запрос на чтение данных будет помещен в очередь запросов на чтение данных.
Существует 3 источника требований к хранилищу данных:
Источник 1. Отправляет запросы на чтение данных. Первый запрос он отправляет в начальный момент времени. По истечении 6 секунд после этого он отправляет второй запрос, и затем по истечении каждых 6 секунд этот источник отправляет очередной запрос. Обработка каждого запроса от этого источника занимает 4 секунды.
Источник 2. Отправляет запросы на чтение данных. Первый запрос он отправляет по истечении 3 секунд от начального момента времени. По истечении 5 секунд после этого он отправляет второй запрос, и затем по истечении каждых 5 секунд этот источник отправляет очередной запрос. Обработка каждого запроса от этого источника занимает 4 секунды.
Источник 3. Отправляет запросы на запись данных. Первый запрос он отправляет по истечении 6 секунд от начального момента времени. По истечении 10 секунд после этого он отправляет второй запрос, и затем по истечении каждых 10 секунд этот источник отправляет очередной запрос. Обработка каждого запроса этого источника занимает 6 секунд.
Через сколько секунд от начального момента будет завершена обработка 5-го запроса на запись данных?
В ответе укажите целое число.