Cod sursa(job #2215907)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 24 iunie 2018 11:17:20
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

int f [ 3000000 ];

int main() {
  int n, i, cnt, numar;
  FILE *fin, *fout;
  fin = fopen( "elmaj.in", "r" );
  fout = fopen ( "elmaj.out", "w" );
  fscanf( fin , "%d" , &n );
  for ( i = 0; i < n; i++ )
    fscanf( fin , "%d", &f [ i ] );
  numar = f [ 0 ];
  cnt = 1;
  for ( i = 1; i < n; i++ )
    if ( f [ i ] == numar )
      cnt ++;
    else {
      cnt --;
      if ( cnt < 0 ) {
        numar = f [ i ];
        cnt = 1;
      }
    }
  cnt = 0;
  for ( i = 0; i < n; i++ )
    if ( f [ i ] == numar )
      cnt++;
  if ( cnt > n / 2 )
    fprintf( fout, "%d %d", numar, cnt );
  else
    fprintf ( fout, "-1" );
  fclose ( fout );
  fclose ( fin );
}