Cod sursa(job #1922513)

Utilizator PopoviciRobertPopovici Robert PopoviciRobert Data 10 martie 2017 17:45:57
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
#define MAXN 1000000
int v[MAXN+1];
int main(){
   FILE*fi,*fout;
   int i,n,cnt,val;
   fi=fopen("elmaj.in" ,"r");
   fout=fopen("elmaj.out" ,"w");
   //fi=stdin;
   //fout=stdout;
   fscanf(fi,"%d " ,&n);
   for(i=1;i<=n;i++)
     fscanf(fi,"%d " ,&v[i]);
   cnt=1;
   val=v[1];
   for(i=2;i<=n;i++){
      if(v[i]==val)
        cnt++;
      else{
        cnt--;
        if(cnt<0){
           cnt=1;
           val=v[i];
        }
      }
   }
   cnt=0;
   for(i=1;i<=n;i++)
    if(v[i]==val)
       cnt++;
   if(cnt>n/2)
     fprintf(fout,"%d %d" ,val,cnt);
   else
     fprintf(fout,"-1");
   fclose(fi);
   fclose(fout);
   return 0;
}