Cod sursa(job #641942)

Utilizator vitaleamaldur vitalik vitalea Data 29 noiembrie 2011 23:44:41
Problema Elementul majoritar Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#include<stdlib.h>
FILE *in, *out;
int *v,n,i,x,contor,exe;

int compare( const void *a, const void *b ){
	return ( *( int* )a - *( int* )b );
}

void count(){
	i=0;
	contor=1;
	exe=1;
	while( contor != n/2+1 && exe != n){
		if( v[i] == v[i+1] ){
			contor++;
		}
		else contor=1;
		i++;
		exe++;
	}
	if( exe == n && contor < n/2+1 ) fprintf( out, "%d", -1);
	else fprintf( out, "%d %d", v[i], contor );
}

int main(){
	in = fopen( "elmaj.in", "r" );
	out = fopen( "elmaj.out", "w" );
	fscanf( in, "%d", &n );
	v=( int* )malloc( n * sizeof( int ) );
	for( i=0; i<n; i++ ){
		fscanf( in, "%d", &v[i] );
	}
	qsort( v, n, sizeof( int ), compare );
	count();
	fclose(in);
	fclose(out);
	return 0;
}