Cod sursa(job #961972)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 13 iunie 2013 13:00:07
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 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=1;   
	freopen("elmaj.in","r",stdin);   
	freopen("elmaj.out","w",stdout);  
	scanf("%d",&n);    
	for (i=1;i<=n;++i)    
		scanf("%d",&v[i]);  
	qsort(v,1,n);  
	int m=n/2;
	for (i=1;i<=n;++i)  
	{             
		if (v[i]==v[i+1])        
			++y;    
		else		
			if (y>=m)         
			{             
				printf("%d %d\n",v[i],y);           
				y=0;
				break;
			}    
			else
				y=1;
	}     
	if (y)
		printf("-1\n");     
	return 0; 
}