Cod sursa(job #1196892)

Utilizator Sever.NastaseSever Nastase Sever.Nastase Data 9 iunie 2014 17:01:41
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
int v[3000000];
int main () {
FILE *fin = fopen ( "elmaj.in", "r" );
FILE *fout = fopen ( "elmaj.out", "w" );
int n, i, nr, maj;
fscanf( fin, "%d", &n );for ( i = 0; i < n; i++ )
fscanf( fin, "%d", &v[i] );
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++;
}
if ( nr > n / 2 )
fprintf( fout, "%d %d\n", maj, nr );
else
fprintf( fout, "-1\n" );
fclose ( fin ); fclose ( fout );
return 0;
}