Cod sursa(job #1490832)

Utilizator adina_aldeaAldea Adina adina_aldea Data 24 septembrie 2015 11:11:51
Problema Elementul majoritar Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 1.08 kb
#include<stdio.h>


int main(void)
{
	
	FILE *in, *out;
	int n;
	int i;
	int v[1000];
	
	in = fopen("elmaj.in","r");
	out = fopen("elmaj.out","w");
	
	fscanf(in,"%d",&n);
	
	for(i = 0; i < n; i++)
	{
		fscanf(in,"%d",&v[i]);
	}
	sortare(v,n);
	int nr = 1;
	float major;
	major = n/2 + 1;
	int save;
	
	
	for(i = 0; i<n-1;i++)
	{
		if(v[i]==v[i+1])
			nr++;
		else
			nr = 1;
		if(nr>=major)
		{
			fprintf(out,"%d",v[i]);
			fprintf(out," %d",nr);
			save = nr;
			nr = 1;
		}
		
	}
	if(save<major)
		fprintf(out,"-1");
	
	
	close(in);
	close(out);
	
}

int sortare(int a[],int n)
{
	int i, j,aux;
	for(i = 0; i<n-1;i++)
		for(j = i+1;j<n;j++)
			if(a[i]>a[j])
			{
				aux = a[i];
				a[i] = a[j];
				a[j] = aux;
			}
	
}

/*void majoritar(int a[], int n)
{
	int i;
	int nr = 1;
	float major;
	major = n/2 + 1;
	
	
	for(i = 0; i<n-1;i++)
	{
		if(a[i]==a[i+1])
			nr++;
		else
			nr = 1;
		if(nr>=major)
		{
			fprintf(out,"%d",a[i]);
			fprintf(out," %d",nr);
			nr = 1;
		}
		else
			fprintf(out,"-1");
	}
	

		
}*/