Pagini recente » Cod sursa (job #892725) | Cod sursa (job #2059005) | Cod sursa (job #1528784) | Cod sursa (job #312638) | Cod sursa (job #2232070)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int n,a[1000001];
int 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)
return cand;
// verificare
int nr = 0;
for (int i = 1; i <= n; i++) {
if (a[i] == cand)
nr++;
}
if (nr > n / 2)
return cand;
else
return -1;
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
{
in>>a[i];
}
out<<mooreMajority(n,a)<<nr;
return 0;
}