Cod sursa(job #961962)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 13 iunie 2013 12:49:59
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <cstdio>
using namespace std; 
int v[1000005]; 
void qsort(int v[], int lo, int hi) 
{    
	int i=lo,j=hi,t,pivot=v[lo+(hi-lo)/2];    
	while (i<=j)  
		{        
			while (pivot>v[i])         
				++i;    
			while (pivot<v[j])       
				--j;      
			if (i<=j)    
			{        
				t=v[i];      
				v[i]=v[j];  
				v[j]=t;      
				++i;        
				--j;     				
			}     
	}    
	if (i<hi)        
		qsort(v,i,hi); 
    if (lo<j)        
		qsort(v,lo,j); 
} 
int main() 
{    
	int i,n,y;   
	freopen("elmaj.in","r",stdin);   
	freopen("elmaj.out","w",stdout);  
	scanf("%d\n",&n);    
	for (i=1;i<=n;++i)    
		scanf("%d ",&v[i]);  
	qsort(v,1,n);  
	for (i=1;i<=n;++i)  
	{        
		for (y=i+1;y<=n;++y)        
			if (v[y]!=v[i])        
				break;      
		if (y-i>=n/2)         
		{             
			printf("%d %d\n",v[i],y-i);     
			fclose(stdin);         
			fclose(stdout);         
			return 0;         
		}         
		i=y-1;     
	}     
	printf("-1\n");     
	return 0; 
}