Cod sursa(job #1418264)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 12 aprilie 2015 15:36:01
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000000
int v[MAXN];
int main(){
    FILE*fi,*fout;
    int nr,con,i,n;
    fi=fopen("elmaj.in" ,"r");
    fout=fopen("elmaj.out" ,"w");
    fscanf(fi,"%d" ,&n);
    for(i=0;i<n;i++)
       fscanf(fi,"%d" ,&v[i]);
    nr=v[0];
    con=1;
    for(i=1;i<n;i++)
        if(nr==v[i])
            con++;
        else{
            con--;
            if(con==0){
                nr=v[i];
                con=1;
            }
        }
    con=0;
    for(i=0;i<n;i++)
        if(v[i]==nr)
           con++;
    if(con<n/2+1)
        fprintf(fout,"-1");
    else
        fprintf(fout,"%d %d" ,nr,con);
    fclose(fi);
    fclose(fout);
    return 0;
}