Cod sursa(job #1801916)

Utilizator vlad.ulmeanu30Ulmeanu Vlad vlad.ulmeanu30 Data 9 noiembrie 2016 18:22:16
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>

int main () {
  FILE *fin, *fout;

  fin = fopen ( "elmaj.in", "r" );
  fout = fopen ( "elmaj.out", "w" );

  int n;

  fscanf ( fin, "%d", &n );

  int i, x;
  int c = -1, av = 0; /// canditat, avantaj

  for ( i = 0; i < n; i++ ) {
    fin>>x;

    if ( av == 0 ) {
      av++;
      c = x;
    }

    if ( c == x )
      av++;
    else
      av--;
  }

  if ( av > 0 ) {
    fclose ( fin );
    fin = fopen ( "elmaj.in", "r" );

    fin>>x;

    int num = 0;

    for ( i = 0; i < n; i++ ) {
      fscanf ( fin, "%d", &x );
      num += ( x == c );
    }

    if ( num > n / 2 )
      fprintf ( fout, "%d %d\n", c, num );
    else
      fprintf ( fout, "-1\n");
  }
  else
      fprintf ( fout, "-1\n");

  fclose ( fin );
  fclose ( fout );

  return 0;
}