Pagini recente » Cod sursa (job #242678) | Cod sursa (job #2232283)
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int mooreMajority(int n, int *v, int &nr_ap) {
int cand = -1, k = 0;
for (int i = 1; i <= n; i++)
{
if (k == 0) {
cand = v[i];
k++;
}
else if (v[i] == cand){
k++;
} else {
k--;
}
}
int nr = 0;
for (int i = 1; i <= n; i++)
if (v[i] == cand)
nr++;
if (nr > n / 2) {
nr_ap = nr;
return cand;
}
else
return -1;
}
int main()
{
int n, nr_ap = 0;
int *v = new int[1000001];
in >> n;
for (int i = 1; i <= n; i++) {
in >> v[i];
}
out << mooreMajority(n, v, nr_ap) << " ";
out << nr_ap;
/*
for (int i = 1; i <= n; i++) {
out << v[i];
}
*/
return 0;
}