#include <cstdio>
#include <vector>
int main(){
long t; scanf("%ld", &t);
while(t--){
long n; scanf("%ld", &n);
std::vector<long> a(n); for(long p = 0; p < n; p++){scanf("%ld", &a[p]);}
long mn(2e9), mx(-mn), diff(0);
for(long p = 0; p < n; p++){
if(p > 0 && a[p] < 0 && a[p - 1] >= 0){
mn = (mn < a[p - 1]) ? mn : a[p - 1];
mx = (mx > a[p - 1]) ? mx : a[p - 1];
}
if(p + 1 < n && a[p] < 0 && a[p + 1] >= 0){
mn = (mn < a[p + 1]) ? mn : a[p + 1];
mx = (mx > a[p + 1]) ? mx : a[p + 1];
}
if(p > 0 && a[p] >= 0 && a[p - 1] >= 0){
long cur = a[p] - a[p - 1];
if(cur < 0){cur = -cur;}
diff = (cur > diff) ? cur : diff;
}
}
long pick = (mn + mx) / 2;
long tmp = (mx - pick);
diff = (diff > tmp) ? diff : tmp;
printf("%ld %ld\n", diff, pick);
}
return 0;
}
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |
1822. Sign of the Product of an Array | 1464. Maximum Product of Two Elements in an Array |
1323. Maximum 69 Number | 832. Flipping an Image |
1295. Find Numbers with Even Number of Digits | 1704. Determine if String Halves Are Alike |
1732. Find the Highest Altitude | 709. To Lower Case |
1688. Count of Matches in Tournament | 1684. Count the Number of Consistent Strings |
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |
771. Jewels and Stones | 1512. Number of Good Pairs |
672. Richest Customer Wealth | 1470. Shuffle the Array |
1431. Kids With the Greatest Number of Candies | 1480. Running Sum of 1d Array |
682. Baseball Game | 496. Next Greater Element I |