Pagini recente » Cod sursa (job #691996) | Cod sursa (job #2654990) | Cod sursa (job #2337834) | Cod sursa (job #871044) | Cod sursa (job #1474137)
#include <stdio.h>
#define MAX 1000005
int n, i, a[MAX], nr, rez;
int majority(int* nr);
int main(){
freopen("elmaj.in", "r", stdin);
freopen("elmaj.out", "w", stdout);
scanf("%d", &n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);
rez = majority(&nr);
printf("%d %d\n", rez, nr);
return 0;
}
int majority(int *nr){
int cand = -1, k = 0;
for(i = 0; i < n; i++)
if(k == 0){
cand = a[i];
k = 1;
}
else if(a[i] == cand)
k++;
else
k--;
if(cand < 0)
return cand;
*nr = 0;
for(i = 0; i < n; i++)
if(a[i] == cand)
(*nr)++;
if(*nr > n / 2)
return cand;
return -1;
}