Надіслати розв'язок

Бали: 20,00 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

У нас є ~N~ діжок різної висоти. В ~i~-у діжку неможливо налити більше води, ніж її висота. Нам треба заповнити діжки таким чином, щоб висота води в (~i+1~)-й діжці була на ~K~ більше, ніж висота води, яку залили в ~i~-у діжку, для ~1 \le i \le N-1~.

Необхідно знайти максимально можливе значення ~K~ і максимальну початкову висоту води ~H~.

Якщо ~N~ = 1, то потрібно заповнити цей контейнер до верху, а значення ~K~ буде ~H_1-1~.

В загальному випадку перший контейнер повинен бути заповнений принаймні до висоти 1.

Формат вхідних даних

Перший рядок містить кількість тестів ~T~ (~1 \le T \le 10^5~).

Далі йдуть тести у такому форматі:

Перший рядок кожного тесту - N (~1 \le N \le 10^5~) - кількість наявних діжок.

Другий рядок тесту містить ~N~ цілих чисел, розділених пропуском ~H_i~ (~1 \le H_i \le 10^{12}~) - висоти відповідних діжок.

В одному тесті кількість всіх чисел не перевищує ~10^5~.

Формат вихідних даних

Для кожного тесту в окремому рядку вивести через пропуск ~K~ та ~H~

Примітка

Для першого тесту оптимальне наповнення діжок буде при максимальному K = 49 і максимальній висоті 2. Наповнення діжок буде таким: 2, 51, 100.

У другому тесті маємо лише одну діжку, тому максимальне значення K = 7, а максимальна початкова висота рівна 8.

Приклад вхідних даних

2
3
200 150 100
1
8

Приклад вихідних даних

49 2
7 8

Коментарі

Please read the guidelines before commenting.


Ще немає коментарів.