План евакуації#4586

План евакуації

2 секунди
64 мегабайти
Дуже складна

У місті є муніципальні будівлі та бомбосховища, збудовані спеціально для евакуації службовців у разі ядерної війни. Кожне бомбосховище має обмежену місткість щодо кількості людей, які можуть у ньому перебувати. В ідеалі всі працівники з однієї муніципальної будівлі мали б іти до найближчого бомбосховища, але це могло б призвести до переповнення деяких сховищ, тоді як інші залишалися б недозавантаженими.

Щоб вирішити цю проблему, Міська Рада розробила спеціальний план евакуації. Замість того, щоб кожного службовця індивідуально призначати до конкретного бомбосховища, у плані визначено, скільки службовців із кожної муніципальної будівлі має йти до кожного бомбосховища. Завдання розподілу поіменно залишено внутрішній адміністрації будівель.

План евакуації враховує кількість службовців у кожній будівлі, гарантуючи, що всі охоплені, і жодне бомбосховище не перевищить своєї місткості.

Міська Рада стверджує, що їхній план евакуації оптимальний, тобто мінімізує загальний час евакуації для всіх працівників міста.

Міський голова, який часто має суперечки з Міською Радою, сумнівається у цій заяві. Він найняв вас як незалежного експерта перевірити план евакуації. Ваше завдання — або підтвердити оптимальність плану Міської Ради, або спростувати її, представивши альтернативний план евакуації з меншим загальним часом евакуації.

Мапу міста можна уявити як квадратну сітку. Місця муніципальних будівель і бомбосховищ задаються парами цілих чисел. Час евакуації із будівлі з координатами X_i, Y_i до бомбосховища з координатами P_j, Q_j обчислюється так:

D_{ij} = |X_i - P_j| + |Y_i - Q_j| + 1

хвилин.

Вхідні дані

У вхідних даних описується карта міста та план евакуації, запропонований Міською Радою.

Перший рядок містить два цілі числа (1 \le N \le 100) і (1 \le M \le 100), розділені пробілом. — кількість муніципальних будівель (нумеруються від до ), — кількість бомбосховищ (нумеруються від до ).

Наступні рядків описують муніципальні будівлі. Кожен рядок містить X_i, Y_i і B_i (-1000 \le X_i, Y_i \le 1000 — координати будівлі, 1 \le B_i \le 1000 — кількість службовців у будівлі).

Далі йдуть рядків — опис бомбосховищ: у кожному рядку P_j, Q_j (-1000 \le P_j, Q_j \le 1000) — координати сховища, C_j (1 \le C_j \le 1000) — місткість сховища.

Наступні рядків описують план евакуації: кожен рядок відповідає будівлі та містить чисел E_{ij} (0 \le E_{ij} \le 10000) — скільки осіб із -ї будівлі мають йти до -го бомбосховища.

Гарантується, що план у вхідних даних коректний.

Вихідні дані

Якщо план Міської Ради оптимальний, виведіть лише слово OPTIMAL.

Інакше спочатку виведіть SUBOPTIMAL, а далі рядків — ваш покращений план у тому ж форматі. Ваш план не обов'язково має бути оптимальним, але має бути кращим за початковий план.

Приклади

Приклад 1

Loading
Loading