Cod sursa(job #3205271)

Utilizator cosminteoaTeodorescu Cosmin cosminteoa Data 19 februarie 2024 09:59:17
Problema Elementul majoritar Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
int v[1000000];
int main() {
  FILE *fin, *fout;
  int n, i, nr, maj;
  fin = fopen( "majoritar.in", "r" );
  fscanf( fin, "%d", &n );
  for ( i = 0; i < n; i++ )
    fscanf( fin, "%d", &v[i] );
  fclose( fin );
  maj = v[0];
  nr = 1;
  for ( i = 1; i < n; i++ )
    if ( v[i] == maj )
      nr++;
    else {
      nr--;
      if ( nr < 0 ) {
        maj = v[i];
        nr = 1;
      }
    }
  nr = 0;
  for ( i = 0; i < n; i++ )
    if ( v[i] == maj )
      nr++;
  fout = fopen ( "elmaj.out", "w" );
  if ( nr > n / 2 )
    fprintf( fout, "%d %d\n", maj, nr );
  else
    fprintf( fout, "-1\n" );
  fclose( fout );
}