Cod sursa(job #1391100)

Utilizator alex.bullzAlexandru Lilian alex.bullz Data 17 martie 2015 17:17:49
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>

int elemen_majoritar (int* v) {
	int n = sizeof (v) / sizeof (v[0]), num = v[0], contor = 1, c = 0;

	for (int i = 1; i < n; ++i) {
		if (v[i] == num) {
			++contor;
		} else {
			--contor;
		}

		if (contor < 0) {
			num = v[i];
			contor = 1;
		}
	}

	for (int i = 0; i < n; ++i) {
		if (v[i] == num) {
			++c;
		}
	}

	if (c >= n / 2) {
		return c;
	}
	return -1;
}

int main() {
	std::ifstream in;
	std::ofstream out;
	int n, sol;

	in.open ("elmaj.in");
	out.open ("elmaj.out");

	in >> n;

	int *v = new int[n];

	for (int i = 0; i < n; ++i) {
		in >> v[i];
	}

	sol = elemen_majoritar (v);

	delete[] v;

	return sol;
}