Cod sursa(job #641945)

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

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

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

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;
}