Cod sursa(job #1750089)

Utilizator IaroslavIaroslav Mazur Iaroslav Data 29 august 2016 16:32:51
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
//#include "stdafx.h"
#include <iostream>
#include <fstream>

using namespace std;

int elements[1000001];

int main()
{
	int n;
	ifstream in("elmaj.in");
	ofstream out("elmaj.out");
	in >> n;
	for (int i = 0; i <= n - 1; i++)
		in >> elements[i];

	int element = -1, counter = 0;
	for (int i = 0; i <= n - 1; i++)
	{
		if (counter == 0)
		{
			element = elements[i];
			counter = 1;
		}
		else if (element == elements[i])
				counter++;
		else
			counter--;
	}
	//verification
	if (counter > 0)
	{
		int criteria = n / 2, count = 0;
		for (int i = 0; i <= n - 1; i++)
		{
			if (element == elements[i])
			{
				count++;
				if (count > criteria)
				{
					out << element << " " << count;
					break;
				}
			}
		}
	}
	else out << -1;
    return 0;
}