Cod sursa(job #2657867)

Utilizator mihaipriboimihailucapriboi mihaipriboi Data 12 octombrie 2020 15:23:59
Problema Elementul majoritar Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#include <stdlib.h>

int v[1000000];

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