总结
-1 A E B -1 -1 -1 -1 -1 C -1 -1 -1 D -1-1-1
-1=k
a1=|A-k|
a2=|B-k|
a3=|C-k|
a4=|D-k|
要保证max(ai)最小,那么k一定为[A,B]的中点,这么一个关系求到k,然后填进去,跑一遍数据,就可以知道m了
const int N=2e5+5;
int a[N];
signed main()
{
IOS;
//file();
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
a[0]=-1,a[n+1]=-1;
int l=1e9,r=0;
for(int i=1;i<=n;i++)
{
if(a[i]==-1)
{
if(a[i-1]!=-1)
l=min(l,a[i-1]),r=max(r,a[i-1]);
if(a[i+1]!=-1)
l=min(l,a[i+1]),r=max(r,a[i+1]);
}
}
int k=(l+r)/2,m=0;
for(int i=1;i<=n;i++)
{
if(a[i]==-1)
a[i]=k;
if(i!=1)
m=max(m,abs(a[i]-a[i-1]));
}
cout<<m<<" "<<k<<endl;
}
return 0;
}