Cod sursa(job #2384236)

Utilizator arcoC. Nicolae arco Data 20 martie 2019 15:26:12
Problema Elementul majoritar Scor 80
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>

typedef unsigned int uint;

int main(void)
{
	FILE *in =  fopen("elmaj.in", "r");
	FILE *out = fopen("elmaj.out", "w");

	if(in != NULL && out != NULL)
	{
		int n;
		fscanf(in, "%d%*c", &n);

		int last;
		int count = 1;
		fscanf(in, "%d%*c", &last);
		int i = 1;
		for(; i < n; i++)
		{
			int t;
			fscanf(in, "%d%*c", &t);

			if(count == 0)
			{
				last = t;
				count = 1;
			}
			else
			{
				if(last != t)
				{
					count--;
				}
				else
				{
					count++;
				}
			}
		}

		int occ = 0;
		fseek(in, 0L, SEEK_SET);
		fscanf(in, "%*d%*c");

		i = 0;
		for(; i < n; i++)
		{
			int t;
			fscanf(in, "%d%*c", &t);

			if(t == last)
				occ++;
		}

		if(occ >= (n / 2 + 1))
			fprintf(out, "%d %d\n", last, occ);
		else
			fprintf(out, "-1");

		fclose(in);
		fclose(out);
	}
	else
	{
		printf("file error\n");
	}

	return 0;
}