Cod sursa(job #2661843)

Utilizator Ana_22Ana Petcu Ana_22 Data 22 octombrie 2020 19:40:27
Problema Elementul majoritar Scor 100
Compilator c-64 Status done
Runda Temă vectori frecvență & hashing clasa a 9-a Marime 0.74 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 1000000

int v[MAXN];

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