Cod sursa(job #961966)

Utilizator Stefanescu_MihaiStefanescu Mihai-Nicolae Stefanescu_Mihai Data 13 iunie 2013 12:53:17
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <cstdio>
using namespace std; 
int v[1000005]; 
FILE *f=fopen ("elmaj.in","r"); 
FILE *g=fopen ("elmaj.out","w"); 
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;   
	fscanf(f,"%d\n",&n);    
	for (i=1;i<=n;++i)    
		fscanf(f,"%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)         
		{             
			fprintf(g,"%d %d\n",v[i],y-i);           
			return 0;         
		}         
		i=y-1;     
	}     
	fprintf(g,"-1\n");     
	return 0; 
}