Friday, January 11, 2013

MAJORITY SPOJ SOLUTION


6171. MAJORITY 

CODE: MAJOR


Input:
3

4

2 1 2 2

6

1 1 1 2 2 2

5

1 2 4 5 1


Output:
YES 2

NO

NO



MAJORITY ELEMENTS IN THE ARRAY IS THE ELEMENT WHICH REPEAT IN ARRAY MORE THAN N/2 TIMES WHERE N IS THE SIZE OF THE ARRAY.


#include<stdio.h>
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int size,i;
        scanf("%d",&size);
        int arr[size];
        for(i=0;i<size;i++)
            scanf("%d",&arr[i]);
            int head, count; 
            head=arr[0]; 
            count=1;  
            for(i=1; i<size; i++)  
            {  
                if(head == arr[i])  
                count++;  
                else if(count == 1) 
                head=arr[i];  
                else  
                count-- ; 
            }  
            count=0;  
            for(i=0; i<size; i++)  
            {  
            if(arr[i] == head)  
            count++;  
            }  
             if(count >  size/2) 
            printf("YES %d\n", head);  
              else  
            printf("NO\n"); 
        printf("\n");
    }
    return 0;
}



No comments:

Post a Comment