CHEFRECP doubt

in this question i am getting wrong answer even though it is satisfied for all given test cases and my test cases

@rishup_nitdgp @cubefreak777 @everule1 @cunbidun @tmwilliamlin plz help

#include
using namespace std;
int main()
{
int t;
cin>>t;
while(t–)
{
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)
cin>>a[i];

   int vis[1001]={0},c=1;
   vis[a[0]]=1;
   for(int i=1;i<n;i++)
   {
    if(a[i]-a[i-1]==0)
    continue;
    else
    if(vis[a[i]]==1)
    c=0;
   
    vis[a[i]]++;
   }  
   
   int freq[1001]={0},unq[1001]={0};
   
   for(int i=0;i<n;i++)
    freq[a[i]]++;
     
    for(int i=0;i<n;i++)
     if(freq[i]>0)
      unq[freq[i]]++;

      int flag=1;
     for(int i=0;i<n;i++)
     if(unq[i]>1)
      {
          flag=0;
          break;
      }
      
    
   // cout<<"flag is "<<flag<<"  c is "<<c<<endl;
    if(flag==0)
     cout<<"NO"<<endl;
     else
     if(flag==1&&c==1)
     cout<<"YES"<<endl;
}

}