link to problem: http://www.spoj.pl/problems/MAJOR/

On Feb 14, 5:03 pm, Akshata Sharma <akshatasharm...@gmail.com> wrote:
> I am trying to submit my solution but its giving TLE. My implemetation is
> O(n).. and i am not able to think a faster algo than this for the problem.
> The problem is based on finding the majority element concept. Please help
>
> My code:
>
> #include<iostream>
> #include<string.h>
>
> using namespace std;
>
> struct res{
> string boo;
> int key;
>
> };
>
> long Majoritycount(int a[], int n)
> {
> int ctr=1;
> int candidate = a[0];
> int mindex=0;
>
> for(int i=0;i<n;i++){
> if(a[i]==a[mindex]) ctr++; //match - incr counter
> else ctr--; //mismatch - dec counter
>
> if(ctr==0) {
> ctr=1;
> mindex=i;
> candidate=a[i];
>
> }
> }
> return candidate;
> }
>
> int main()
> {
> struct res result[100];
> int t,n,count=0;
> int tt,cnt=0;
> cin>>t;
> tt=t;
>
> while(t>0)
> {
> cin>>n;
> int *arr=new int[n];
> for(int i=0;i<n;i++)
> cin>>arr[i];
> int a=Majoritycount(arr,n);
>
> for(int i=0;i<n;i++)
> if(arr[i]==a)
> count++;
>
> if(count>(n/2))
> {
> result[t].boo="YES";
> result[t].key=a;}
>
> else
> {
> result[t].boo="NO";
> result[t].key=9999;}
>
> t--;
> count=0;
>
> }
>
> for(int i=tt;i>0;i--)
> {
>         if(result[i].key!=9999)
> cout<<result[i].boo<<" "<<result[i].key<<"\n";
> else
> cout<<result[i].boo<<"\n";
>
> }
>
> return 0;
>
> }

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to