Cod sursa(job #1167683)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 5 aprilie 2014 18:43:37
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>

using namespace std;
void mooreMajority(int n,int &nr,int &cand, int  a[]) {
    int  k = 0;
    for (int i = 0; i < n; i++) {
        if (k == 0) {
            cand = a[i];
            k = 1;
        } else if (a[i] == cand) {
            k++;
        } else
            k--;
    }



    for (int i = 0; i < n; i++) {
        if (a[i] == cand)
            nr++;
    }

}
int main()
{
    freopen("elmaj.in","r",stdin);
    freopen("elmaj.out","w",stdout);
    int n,i,nr=0,cand=-1;
    scanf("%d",&n);
    int v[n];
    for(i=0;i<n;i++) scanf("%d",&v[i]);
    mooreMajority(n,nr,cand,v);
    printf("%d %d",cand,nr);
}