Cod sursa(job #1801915)

Utilizator vlad.ulmeanu30Ulmeanu Vlad vlad.ulmeanu30 Data 9 noiembrie 2016 18:21:41
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 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++ ) {
    fscanf ( fin, "%d", &x );

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

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

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

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

    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;
}