Pagini recente » Istoria paginii problema/alinieri | Borderou de evaluare (job #1356664) | Cod sursa (job #3205253)
#include <stdio.h>
#include <ctype.h>
#define NMAX 1000000
int v[ NMAX ];
int readInt( FILE *fin ) {
int ret_nr;
char ch;
while ( isspace( ch = fgetc( fin ) ) );
ret_nr = 0;
do
ret_nr = ret_nr * 10 + ch - '0';
while ( isdigit( ch = fgetc( fin ) ) );
return ret_nr;
}
int main() {
FILE *fin, *fout;
int n, i, cand, cnt;
fin = fopen( "elmaj.in", "r" );
n = readInt( fin );
cand = -1;
cnt = 0;
for ( i = 0; i < n; i++ ) {
v[ i ] = readInt( fin );
if ( cnt == 0 ) {
cand = v[ i ];
cnt = 1;
} else {
cnt += 1 - 2 * (v[ i ] != cand);
}
}
fclose( fin );
cnt = 0;
for ( i = 0; i < n; i++ ) {
if ( v[ i ] == cand )
cnt++;
}
fout = fopen( "elmaj.out", "w" );
if ( cnt > n / 2 ) {
fprintf( fout, "%d %d\n", cand, cnt );
} else {
fprintf( fout, "-1\n" );
}
fclose( fout );
return 0;
}