Дан массив 
a
a из 
n
n целых чисел.

Необходимо ровно один раз выбрать два целых числа 
l
l и 
r
r (
1
≤
l
≤
r
≤
n
1≤l≤r≤n) и заменить все 
a
i
a 
i
​
  (
l
≤
i
≤
r
l≤i≤r) на 
M
E
X
(
a
l
,
a
l
+
1
,
…
,
a
r
−
1
,
a
r
)
MEX(a 
l
​
 ,a 
l+1
​
 ,…,a 
r−1
​
 ,a 
r
​
 ).

Ваша задача независимо найти четыре значения, а именно среди всех возможных массивов 
m
m после ровно одного преобразования:

Минимальное 
m
a
x
(
a
)
max(a)
Максимальное 
m
a
x
(
a
)
max(a)
Минимальное 
m
i
n
(
a
)
min(a)
Максимальное 
m
i
n
(
a
)
min(a)
Где 
m
a
x
(
a
)
max(a) - максимальное значение в 
a
a, а 
m
i
n
(
a
)
min(a) - минимальное.

Формат ввода
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит количество наборов входных данных 
t
t (
1
≤
t
≤
4
⋅
1
0
4
1≤t≤4⋅10 
4
 ).

Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно целое число 
n
n (
1
≤
n
≤
2
⋅
1
0
5
1≤n≤2⋅10 
5
 ) - длину массива 
a
a.

Вторая строка содержит 
n
n целых чисел 
a
1
,
a
2
,
…
,
a
n
a 
1
​
 ,a 
2
​
 ,…,a 
n
​
  (
0
≤
a
i
≤
1
0
9
0≤a 
i
​
 ≤10 
9
 ) - элементы массива 
a
a.

Гарантируется, что сумма 
n
n по всем наборам входных данных не превосходит 
2
⋅
1
0
5
2⋅10 
5
 .

Формат вывода
Для каждого набора входных данных в отдельной строке выведите четыре целых числа через пробел:

минимально возможное значение 
m
a
x
(
a
)
max(a),
максимально возможное значение 
m
a
x
(
a
)
max(a),
минимально возможное значение 
m
i
n
(
a
)
min(a),
максимально возможное значение 
m
i
n
(
a
)
min(a)
после ровно одного преобразования массива (каждое значение вычисляется независимо).

Примечание
Определения

M
E
X
MEX множества чисел определяется как наименьшее целое неотрицательное число, которое не встречается в этом множестве.

Например, 
M
E
X
(
1
,
0
,
4
,
1
,
2
)
MEX(1,0,4,1,2) равен 
3
3, а 
M
E
X
(
2
,
1
,
3
,
2
)
MEX(2,1,3,2) равен 
0
0.

Тестовые примеры

В первом наборе входных данных есть только один вариант выбрать 
l
l и 
r
r, после чего 
a
=
[
0
]
a=[0] и все четыре значения равны 
0
0.

Во втором наборе входных данных массив 
a
a после ровно одного преобразования может быть равен 
[
1
,
1
]
[1,1], 
[
0
,
0
]
[0,0] или 
[
2
,
2
]
[2,2].

Соответственно

минимальное возможное значение 
m
a
x
(
a
)
=
0
max(a)=0;
максимально возможное значение 
m
a
x
(
a
)
=
2
max(a)=2;
минимальное возможное значение 
m
i
n
(
a
)
=
0
min(a)=0;
максимально возможное значение 
m
i
n
(
a
)
=
2
min(a)=2.
Ограничения
Ограничение времени

3 с

Ограничение памяти

256 МБ

Пример 1
Ввод
6
1
1
2
0 1
3
0 0 0
4
0 0 1 2
5
4 3 0 2 1
6
4 1 0 2 3 1
Вывод
0 0 0 0
0 2 0 2
1 1 0 1
0 3 0 3
1 5 0 5
3 5 0 5

Напиши решение на js:

unction calculateAnswer(n, a) {
    // your code

    return [
        minMax,
        maxMax,
        minMin,
        maxMin
    ];
}

// ввод/вывод в самом низу

const fs = require('fs');

class FastInput {
    constructor(filename) {
        this.tokens = fs.readFileSync(filename, 'utf8')
            .trim()
            .split(/\s+/);
        this.index = 0;
    }

    readToken() {
        return this.tokens[this.index++];
    }

    readInt() {
        return parseInt(this.readToken(), 10);
    }

    readLong() {
        return BigInt(this.readToken());
    }

    readTokens(n) {
        const res = this.tokens.slice(this.index, this.index + n);
        this.index += n;
        return res;
    }

    readIntArray(n) {
        const res = new Array(n);

        for (let i = 0; i < n; i++) {
            res[i] = this.readInt();
        }

        return res;
    }
}

// ввод/вывод
// не изменяйте сигнатуру метода
function solution() {
    const inputFile = './input.txt';
    const outputFile = './output.txt';

    const input = new FastInput(inputFile);

    const answers = [];

    const t = input.readInt();
    for (let test = 0; test < t; test++) {
        const n = input.readInt();
        const a = input.readIntArray(n);

        const testAnswers = calculateAnswer(n, a);
        answers.push(testAnswers.join(" "));
    }

    fs.writeFileSync(outputFile, answers.join("\n") + "\n");
}