Pagini recente » Cod sursa (job #2394083) | Cod sursa (job #2368541) | Cod sursa (job #2840472) | Cod sursa (job #72746) | Cod sursa (job #772457)
Cod sursa(job #772457)
#include <cstdio>
using namespace std;
int n, a[1000001];
void mooreMajority (int n, int a[]) {
int cand = -1, k = 0, i;
for (i=0; i<n; ++i) {
if (k == 0) {
cand = a[i];
k = 1;
}
else if (cand == a[i])
++k;
else
--k;
}
int nr = 0;
for (i=0; i<n; ++i)
if (a[i] == cand)
++nr;
freopen ("elmaj.out", "w", stdout);
if (nr > n/2) printf ("%d %d", cand, nr);
else printf ("-1");
fclose (stdout);
}
void read (int &n, int a[]) {
freopen ("elmaj.in", "r", stdin);
scanf ("%d", &n);
for (int i=0; i<n; ++i)
scanf ("%d", &a[i]);
fclose (stdin);
}
int main () {
read (n, a);
mooreMajority(n, a);
return 0;
}