На вхід подається прямокутна матриця NxM із числами. Після цього користувачу приходить Q запитів, не завжди валідних. Запити поділяються на два типи: "query" та "update". На перший тип запитів, користувач видає середнє значення чисел (цілу частину) у заданому для цього запиту підматриці та різницю між максимальним та мінімальним числом у цій ж підматриці. Другий тип запитів змінюють значення заданого елемента у матриці на нове значення.
Обмеження
- ~0 < N \le 1000~
- ~0 < M \le 1000~
- ~0 \le Q \le 100000~
- ~0 \le x_1,x_2 < N~
- ~0 \le у_1,у_2 < M~
Input
У першому рядку задаються розміри матриці (висота та ширина) ~N~, ~M~. Наступні ~N~ рядків містять по ~M~ чисел, що задають значення елементів матриці. Усі значення - цілі, невід'ємні числа, що не перевищують 1000.
Наступний рядок містить ~Q~ - кількість запитів. Наступні ~Q~ рядків містять запити.
Запити першого типу мають наступний вигляд: "query ~x_1~ ~y_1~ ~x_2~ ~y_2~", без лапок, де ~х_1, у_1~ - координати лівого верхнього кута (рядок та стовпчик), а ~х_2, у_2~ - координати правого нижнього кута підматриці.
Запит другого типу має наступний вигляд: "update ~x~ ~y~ val", без лапок, де ~х, у~ - координати елемента в матриці, який потрібно замінити, val - нове значення (ціле, невід'ємне число, що не перевищує 1000).
Невалідні запити складаються із одного значення - некоректного значення типу. Наприклад "update" (без лапок).
Output
Для кожного запиту "query" користувач повинен вивести у новому рядку відповідь на запит у вигляді "Average: avg Diff: diff", без лапок та замість avg та diff відповідні пораховані значення.
Для кожного некоректного запиту у новому рядку треба вивести "Invalid query" (без лапок).
Input #1
4 5
1 2 3 4 5
6 7 8 9 1
2 3 4 5 8
9 9 1 9 9
4
query 1 2 3 3
update 0 0 100
query 0 0 3 4
apdate
Output #1
Average: 6 Diff: 8
Average: 10 Diff: 99
Invalid query
Коментарі
Добавте будьласка запити та відповіді
так, пропустив. Дякую!