Cod sursa(job #650765)

Utilizator FIIDutcaDutca Bogdan Andrei FIIDutca Data 18 decembrie 2011 21:56:42
Problema Elementul majoritar Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.68 kb
#include<stdio.h>
void insertion_sort(long long a[],long long n)
{
  long key,i,j;
  for(j=1;j<n;j++)
  {
     key=a[j];
     i=j-1;
     while(a[i]>key && i>=0)
     {
		a[i+1]=a[i];
		i--;
     }
     a[i+1]=key;
  }
}
int main()
{
	long long i,n,k,nr, a[200000];
	FILE *f,*g;
	f=fopen("elmaj.in","r");
	g=fopen("elmaj.out","w");
	fscanf(f,"%lld",&n);
	for(i=0;i<n;i++)
		fscanf(f,"%lld",&a[i]);
	insertion_sort(a,n);
	k=n/2;i=k-1;nr=1;
	while(i>=0 && a[i]==a[k])
	{
		i--;
		nr++;
	}
	i=k+1;
	while(i<n && a[i]==a[k])
	{
		i++;
		nr++;
	}
	if (nr>=n/2+1)
		fprintf(g,"%lld %lld",a[k],nr);
	else
		fprintf(g,"-1");
	fclose(f);
	fclose(g);
	return 0;
}