Cod sursa(job #1325020)

Utilizator Yasin_ibraimIbraim Yasin Yasin_ibraim Data 23 ianuarie 2015 09:04:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<stdio.h>

int findMaj(int a[],int n)
{
    int counter=1,pos=0;
    for(int i=0;i<n;i++)
    {
        if(a[i]==a[pos])    counter++;
        else counter--;
        if(counter==0)
        {
            counter++;
            pos=i;
        }
    }
    return a[pos];
}

int checkMaj(int a[],int n,int c)
{
    int counter=0;
    for(int i=0;i<n;i++)
        if(a[i]==c) counter++;
    return counter;
}

int main()
{
    FILE *fin,*fout;
    fin=fopen("elmaj.in","r");
    fout=fopen("elmaj.out","w");
    int n,c,f;
    fscanf(fin,"%d",&n);
    int a[n];
    for(int i=0;i<n;i++)
        fscanf(fin,"%d",&a[i]);

    c=findMaj(a,n);
    f=checkMaj(a,n,c);
    if(f>n/2)   fprintf(fout,"%d %d",c,f);
    else fprintf(fout,"-1");
}