What is wrong with this code?
#include<bits/stdc++.h>
#define ll long long int
using namespace std;
int main()
{
ll t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
ll *arr1=new ll[n];
ll *arr2=new ll[n-1];
for(int i=0;i<n;i++)
{
cin>>*(arr1+i);
}
for(int i=0;i<n-1;i++)
{
cin>>*(arr2+i);
}
int o=n-1;
ll min1=LLONG_MAX,max1=LLONG_MIN,min2=LLONG_MAX,max2=LLONG_MIN;
for(int i=0;i<n;i++)
{
min1=min(arr1[i],min1);
max1=max(arr1[i],max1);
}
for(int i=0;i<o;i++)
{
min2=min(arr2[i],min2);
max2=max(arr2[i],max2);
}
if(n==2)
{
sort(arr1,arr1+n);
sort(arr2,arr2+o);
if(arr1[1]>=arr2[0])
{
cout<<-(arr1[0]-arr2[0])<<endl;
}
else
{
cout<<-(arr1[1]-arr2[0])<<endl;
}
}
else if((max2-max1)==(min2-min1))
{
cout<<max2-max1<<endl;
}
else if(max2<=max1)
{
cout<<min2-min1<<endl;
}
else
{
ll secondmax=LLONG_MIN;
for(int i=0;i<n;i++)
{
if(arr1[i]==max1)
{
arr1[i]=-arr1[i];
}
}
for(int i=0;i<n;i++)
{
secondmax=max(arr1[i],secondmax);
}
if((max2-secondmax)==(min2-min1))
{
cout<<max2-secondmax<<endl;
}
else
{
cout<<max2-max1<<endl;
}
}
}
}