Pagini recente » Cod sursa (job #2244835) | Cod sursa (job #2032088) | Cod sursa (job #3344551) | Cod sursa (job #261833) | Cod sursa (job #3305320)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
const int NMAX = 1e6 + 1;
int v[NMAX];
int main()
{
int n, cand = -1, nrVoturi = 0;
f >> n;
for (int i = 1; i <= n; i++)
{
f >> v[i];
if (nrVoturi == 0)
{
///avem un nou candidat
cand = v[i];
nrVoturi = 1;
}
else if (v[i] == cand)
{
nrVoturi++;
}
else
{
nrVoturi--;
}
}
///daca exista element majoritar, atunci voi aduna 1 de cel putin n/2 = 1ori
/// deci suma totala va fi > 0. Adica majoritate => nrVoturi > 0
if (nrVoturi == 0)
{
/// este clar ca nu am element majoritar
g << -1;
return 0;
}
int cnt = 0;
for (int i = 1; i <= n; i++)
{
if (v[i] == cand)
{
cnt++;
}
}
if (cnt >= n / 2 + 1)
{
g << cand << ' ' << cnt;
}
else
g << -1;
return 0;
}