Cod sursa(job #641949)

Utilizator vitaleamaldur vitalik vitalea Data 30 noiembrie 2011 00:16:00
Problema Elementul majoritar Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
#include<stdlib.h>
FILE *in, *out;
int *v,n,i,x,contor,j,exe,aux;

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

void count(){
	i=0;
	contor=1;
	exe=1;
	while( i < n){
		j=i;
		while( j<n && v[j+1] == v[i]){
			j++;
			if( j-i+1 > n/2 ){
			    fprintf( out,"%d %d",v[i],j-i+1 );
			    return;
			}
		}
		i=j+1;
	}
	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;
}