Cod sursa(job #1026752)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 11 noiembrie 2013 22:23:51
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
int v[1000000];
int main(){
    int i,e,s,n;
    FILE *fin,*fout;
    fin=fopen("elmaj.in","r");
    fout=fopen("elmaj.out","w");
    fscanf(fin,"%d%d",&n,&v[0]);
    s=1;
    e=v[0];
    for(i=1;i<n;i++){
        fscanf(fin,"%d",&v[i]);
        if(v[i]==e){
            s++;
        }else {
            s--;
            if(s==-1){
                e=v[i];
                s=1;
            }
        }
    }
    s=0;
    for(i=0;i<n;i++){
        if(v[i]==e){
            s++;
        }
    }
    if(s>n/2){
        fprintf(fout,"%d %d",e,s);
    }else {
        fprintf(fout,"-1");
    }
    return 0;
}