Cod sursa(job #1482021)

Utilizator herbertoHerbert Mohanu herberto Data 5 septembrie 2015 20:06:47
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>
#include <stdlib.h>

int v[1000001];
int main(){
  FILE*fin=fopen("elmaj.in", "r");
  FILE*fout=fopen("elmaj.out", "w");
  int n, i, maj, nr;
  fscanf(fin, "%d", &n);
  for(i=1; i<=n; i++)
    fscanf(fin, "%d", &v[i]);

  maj=v[1];
  nr=1;
  for(i=2; i<=n; i++){
    if(v[i]==maj)
      nr++;
    else{
      nr--;
      if(nr<0){
        maj=v[i];
        nr=1;
      }

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

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

  return 0;
}