Cod sursa(job #1410228)

Utilizator StefanRARapeanu-Andreescu Stefan StefanRA Data 30 martie 2015 22:37:31
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>
int n, i, contor, candidat, *v;
int main()
{
	FILE *fp=fopen("elmaj.in", "r");
	fscanf(fp, "%d", &n);
	v=(int *)malloc(n*sizeof(int));
	for (i=0;i<n;i++)
	{
		fscanf(fp, "%d", &v[i]);
		if (contor==0)
		{
			candidat=v[i];
			contor=1;
		}
		else
		{
			if (v[i]==candidat)
				contor++;
			else
				contor--;
		}
	}
	freopen("elmaj.out", "w", fp);
	if (contor==0)
		fprintf(fp, "-1");
	else
	{
		contor=0;
		for (i=0;i<n;i++)
			if (v[i]==candidat)
				contor++;
		if (contor>n/2)
			fprintf(fp, "%d %d", candidat, contor);
		else
			fprintf(fp, "-1");
	}
	fclose(fp);
	free(v);
	return 0;
}