Help me in solving EQUALELE problem

My issue

include <bits/stdc++.h>

using namespace std;

int main() {
int t;
cin>>t;
while(t–){
int n;
cin>>n;
int counter = n-1 ;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a, a+n);
for(int i=0;i<n;i++){
if(a[i]==a[i+1]){
counter-- ;
}
else{
continue;
}
}
cout << counter << endl;
}

return 0;

}

My code

#include <bits/stdc++.h>

using namespace std;

int main() {
	int t;
	cin>>t;
	while(t--){
	    int n;
	    cin>>n;
	    int counter = n-1 ;
	    int a[n];
	    for(int i=0;i<n;i++){
	        cin>>a[i];
	    }
	    sort(a, a+n);
	    for(int i=0;i<n;i++){
	        if(a[i]==a[i+1]){
	            counter-- ;
	        }
	        else{
	            continue;
	        }
	    }
        cout << counter << endl;
	}

	return 0;
}

Learning course: Arrays, Strings & Sorting
Problem Link: Equal Elements Practice Problem in - CodeChef

@sj_sahil23
plzz refer my c++ solution for better understanding

#include <iostream>
#include<algorithm>
using namespace std;

int main() {
	// your code goes here
		int t,i;
	cin>>t;
	while(t--)
	{
	    int n;
	    cin>>n;
	    int a[n];
	    for(i=0;i<n;i++)
	    {
	        cin>>a[i];
	    }
	    int count=1;
	    
	    sort(a,a+n);
	    int ans=0;
	    
	    for(i=1;i<n;i++){
	        if(a[i]==a[i-1])
	        {
	        count++;
	        }
	        else
	        {
	            ans=max(ans,count);
	            count=1;
	        }
	    }
	    ans=max(ans,count);
	    cout<<n-ans<<endl;
	    
	}
	return 0;
}