Cod sursa(job #670013)

Utilizator CS-meStanca Marian Ciprian CS-me Data 28 ianuarie 2012 10:35:23
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<stdio.h>
FILE *fin=fopen("elmaj.in","r");
FILE *fout=fopen("elmaj.out","w");
int n,i,maj;
int em,v[1000010],x,nr;

int main(){

    fscanf(fin,"%d",&n);

    fscanf(fin,"%d",&em);
    maj=1;
    v[1]=em;

    for(i=2;i<=n;i++){
        fscanf(fin,"%d",&x);
        v[i]=x;

        if(x!=em){
            maj--;
            if(maj==0){
                em=x;
                maj=1;
            }
        }
        else{
            maj++;
        }
    }

    int nr=0;

    for(i=1;i<=n;i++){
        if(v[i]==em){
            nr++;
        }
    }

    if( nr >= (n/2+1) ){
        fprintf(fout,"%d %d",em,nr);
    }
    else fprintf(fout,"-1");

return 0;
}