eolymp
bolt
Try our new interface for solving problems
Məsələlər

План эвакуации

План эвакуации

В городе есть муниципальные здания и бомобоубежища, которые были специально построены для эвакуации служащих в случае ядерной войны. Каждое бомбоубежище имеет ограниченную вместительность по количеству людей, которые могут в нем находиться. В идеале все работники из одного муниципального здания должны были бы бежать к ближайшему бомбоубежищу. Однако, в таком случае, некоторые бомбоубежища могли бы переполниться, в то время как остальные остались бы наполовину пустыми. Чтобы резрешить эту проблему Городской Совет разработал специальный план эвакуации. Вместо того, чтобы каждому служащему индивидуально приписать, в какое бомбоубежище он должен бежать, для каждого муниципального здания определили, сколько служащих из него в какое бомобоубежище должны бежать. Задача индивидуального распределения была переложена на внутреннее управление муниципальных зданий. План эвакуации учитывает количество служащих в каждом здании --- каждый служащий должен быть учтен в плане и в каждое бомбоубежище может быть направлено количество служащих, не превосходящее вместимости бомбоубежища. Городской Совет заявляет, что их план эвакуации оптимален в том смысле, что суммарное время эвакуации всех служащих города минимально. Мэр города, находящийся в постоянной конфронтации с Городским Советом, не слишком то верит этому заявлению. Поэтому он нанял Вас в качестве независимого эксперта для проверки плана эвакуации. Ваша задача состоит в том, чтобы либо убедиться в оптимальности плана Городского Совета, либо доказать обратное, представив в качестве доказательства другой план эвакуации с меньшим суммарным временем для эвакуации всех служащих. Карта города может быть представлена в виде квадратной сетки. Расположение муниципальных зданий и бомбоубежищ задается парой целых чисел, а время эвакуации из муниципального здания с координатами (\textbf{X_i}, \textbf{Y_i}) в бомбоубежище с координатами (\textbf{P_j}, \textbf{Q_j} ) составляет \textbf{Dij = |X_i-P_j| + |Yi-Q_j| + 1} минут. \InputFile Входной файл содержит описание карты города и плана эвакуации, предложенного Городским Советом. Первая строка входного файла содержит два целых числа \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{100}) и \textbf{M} (\textbf{1} ≤ \textbf{M} ≤ \textbf{100}), разделенных пробелом. \textbf{N} --- число муниципальных зданий в городе (все они занумерованы числами от \textbf{1} до \textbf{N}), \textbf{M} --- число бомбоубежищ (все они занумерованы числами от \textbf{1} до \textbf{M}). Последующие \textbf{N} строк содержат описания муниципальных зданий. Каждая строка содержит целые числа \textbf{X_i}, \textbf{Y_i} и \textbf{B_i}, разделенные пробелами, где \textbf{X_i}, \textbf{Y_i} (\textbf{-1000} ≤ \textbf{X_i}, \textbf{Y_i} ≤ \textbf{1000}) --- координаты здания, а \textbf{B_i} (\textbf{1} ≤ \textbf{B_i} ≤ \textbf{1000}) --- число служащих в здании. Описание бомбоубежищ содержится в последующих \textbf{M} строках. Каждая строка содержит целые числа \textbf{P_j}, \textbf{Q_j} и \textbf{C_j}, разделенные пробелами, где \textbf{P_j}, \textbf{Q_j} (\textbf{-1000} ≤ \textbf{P_j}, \textbf{Q_j} ≤ \textbf{1000}) --- координаты бомбоубежища, а \textbf{C_j} (\textbf{1} ≤ \textbf{C_j} ≤ \textbf{1000}) --- вместимость бомбоубежища. В последующихся \textbf{N} строках содержится описание плана эвакуации. Каждая строка представляет собой описание плана эвакуации для отдельного здания. План эвакуации из \textbf{i}-го здания состоит из \textbf{M} целых чисел \textbf{E_ij}, разделенных пробелами. \textbf{E_ij} (\textbf{0} ≤ \textbf{E_ij} ≤ \textbf{10000}) --- количество служащих, которые должны эвакуироваться из \textbf{i}-го здания в \textbf{j}-е бомбоубежище. Гарантируется, что план, заданный во входном файле, корректен. \OutputFile Если план эвакуации Городского Совета оптимален, то выведите одно слово \textbf{OPTIMAL}. В противном случае выведите на первой строке слово \textbf{SUBOPTIMAL}, а в последующих \textbf{N} строках выведите Ваш план эвакуации (более оптимальный) в том же формате, что и во входном файле. Ваш план не обязан быть оптимальным, но должен быть лучше плана Городского Совета.
Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
3 4
-3 3 5
-2 -2 6
2 2 5
-1 1 3
1 1 4
-2 -2 7
0 -1 3
3 1 1 0
0 0 6 0
0 3 0 2
Çıxış verilənləri #1
SUBOPTIMAL
3 0 1 1
0 0 6 0
0 4 0 1