Status:Correct Answer
Language : C(NOTE : Try a few times yourself before moving to the solution)
Status:
Correct Answer
#include <stdio.h>
#include <stdlib.h>
int cmpfunc (const void * a, const void * b) {
return ( *(int*)a - *(int*)b );
}
int main() {
int t;
scanf("%d\n",&t);
while(t--)
{
int n;
scanf("%d\n",&n);
int arr[n];
int same = 1;
for(int i = 0; i < n; i++)
scanf("%d ",&arr[i]);
int max = 0;
qsort(arr, n, sizeof(int), cmpfunc);
for(int i = 0; i < n-1; i++)
{
if(arr[i+1] == arr[i])
same++;
else
same = 1;
max = same>max?same:max;
}
if(n%2==0){
if(max >= ((n/2)+1))
printf("No\n");
else
printf("Yes\n");
}
else
{
if(max > ((n/2)+1))
printf("No\n");
else
printf("Yes\n");
}
}
return 0;
}
No comments:
Post a Comment