Pagini recente » Cod sursa (job #2298548) | Cod sursa (job #2681146) | Cod sursa (job #2205061) | Cod sursa (job #2842215) | Cod sursa (job #2232072)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int n,a[1000001],nr;
void mooreMajority(int n, int a[]){
int cand=-1, k = 0;
for (int i = 1; i <= n; i++) {
if (k == 0) {
cand = a[i];
k = 1;
} else if (a[i] == cand) {
k++;
} else
k--;
}
if (cand < 0)
{out<<cand;return;}
// verificare
for (int i = 1; i <= n; i++) {
if (a[i] == cand)
nr++;
}
if (nr > n / 2)
out<<cand;
else
out<<-1;
out<<' '<<nr;
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
{
in>>a[i];
}
mooreMajority(n,a);
return 0;
}