Cod sursa(job #973116)

Utilizator Master011Dragos Martac Master011 Data 13 iulie 2013 15:09:11
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<cstdio>
#define CLOSE fclose(in); fclose(out); return 0;

int v[1000005];

int main(){
    FILE *in=fopen("elmaj.in","r");
    FILE *out=fopen("elmaj.out","w");

    int N , cand , Nrap=0;
    fscanf(in,"%d",&N);
    for(int i = 1 ; i <= N ; ++i){
        fscanf(in,"%d",&v[i]);
        if(Nrap==0){
            Nrap=1;
            cand=v[i];
        }
        else
            if(v[i]==cand)
                ++Nrap;
        else
            --Nrap;
    }
    if(Nrap<=0){
        fprintf(out,"-1");
        CLOSE
    }
    Nrap=0;
    for(int i = 1 ; i <= N ; ++i)
        if(v[i]==cand)
            ++Nrap;
    if(Nrap>N/2)
        fprintf(out,"%d %d\n",cand,Nrap);
    else
        fprintf(out,"-1");
    CLOSE
}