Рассмотрим систему из n серверов, расположенных в d дата-центрах. Серверы пронумерованы натуральными числами от 1 до n. На первом сервере расположен уникальный файл размера
m
GB. Наша задача — продублировать его на остальные серверы.
Для каждого сервера
s
известны входящая скорость передачи данных, исходящая скорость передачи данных и номер дата-центра, где расположен сервер. В этой задаче скорость передачи данных будем измерять в секундах, затрачиваемых на 1 GB получаемых или отправляемых данных. В задаче используется нестандартная характеристика скорости.
С сервера S на сервер T файл передается за время m⋅dcSdTd⋅max(Sout,Tin), где dcij — некоторый коэффициент, задающий замедление передачи данных от дата-центра с номером
i в дата-центр с номером j, Sout — минимальное время передачи 1 GB данных с сервера S, Tin — минимальное время получения 1 GB данные сервером T.
Информация передаётся по серверам в соответствии с порядком их номеров. Пока два сервера обмениваются данными, они оба заблокированы. В начальный момент времени 0 файл доступен только на первом сервере.
Будем считать, что обработка очереди копирования файлов происходит по следующему принципу:

Сначала завершается операция копирования, которая должна завершиться в этот момент.
Затем в порядке возрастания номеров серверов, получивших в данный момент времени файл, выводятся сообщения в лог.
Затем формируется пул из серверов, с которых в этот момент может начаться копирование. Это все сервера, которые завершили передачу данных или получение.
В порядке возрастания номеров доступных серверов они получают новое задание (в порядке возрастания номеров серверов для получения данных).
Если в какой-то момент все сервера уже получили файл или получают его, то новых запусков копирования не происходит.
Выведите лог процесса копирования. Каждая строка должна содержать запись Time X: server A received file from server B. Строки лога должны быть отсортированы по возрастанию времени X, а при равенстве X
по возрастанию серверов-получателей A.

Формат ввода
В первой строке записано три целых числа n, d и m (2≤n≤1000000, 1≤d≤10, 1≤m≤1000).
В каждой из следующих n строк записаны параметры очередного сервера: три целых числа
Sin, Sout и Sd (1≤Sin≤1000000, 1≤Sout≤1000000, 1≤Sd≤d).
В следующих d строках записана матрица dij (1≤dij≤3). Величина dij, расположенная на j-й позиции i-й строки, задает коэффициент замедления передачи данных от дата-центра с номером i в дата-центр с номером j.

Формат вывода
Выведите лог копирования данных.
пример вывода:
Time 20: server 2 received file from server 1
Time 40: server 3 received file from server 1
Time 40: server 4 received file from server 2
Time 60: server 5 received file from server 1
реши на c++