please someone tell me where my code fails
here is my c++ code:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
int *a,n,error=0,f,b;
for(int q=0;q<t;q++)
{
cin>>n;
a=new int[n];
error=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
f=0;
b=n-1;
for(int i=0;i<n;i++)
{
if(a[b]==n-i-1 || a[b]==i)
{
b--;
continue;
}
else if(a[f]==i || a[f]==n-i-1)
{
f++;
continue;
}
else{
error++;
break;
}
}
if(error==0 && b<f)
{
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
delete[] a;
}
return 0;
}