Pagini recente » Cod sursa (job #1258490) | Cod sursa (job #2125963) | Cod sursa (job #452600) | Cod sursa (job #1524231) | Cod sursa (job #2951628)
// https://infoarena.ro/problema/elmaj - Problem to be solved
#include <iostream>
#include <fstream>
using namespace std;
int v[1000001];
int guess(int n) {
int cnt = 1, k = 1;
for (int i = 2; i <= n; ++i) {
if (v[k] == v[i]) {
cnt += 1;
} else {
cnt -= 1;
}
if (cnt == 0) {
k = i;
cnt = 1;
}
}
return v[k];
}
int main()
{
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n, count_guess = 0;
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
}
for (int i = 1; i <= n; ++i) {
if (guess(n) == v[i]) {
count_guess += 1;
}
}
if (count_guess >= n/2 + 1) {
fout << guess(n) << " " << count_guess;
} else {
return -1;
}
}