Cod sursa(job #1167683)
| Utilizator | Data | 5 aprilie 2014 18:43:37 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <cstdio>
using namespace std;
void mooreMajority(int n,int &nr,int &cand, int a[]) {
int k = 0;
for (int i = 0; i < n; i++) {
if (k == 0) {
cand = a[i];
k = 1;
} else if (a[i] == cand) {
k++;
} else
k--;
}
for (int i = 0; i < n; i++) {
if (a[i] == cand)
nr++;
}
}
int main()
{
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
int n,i,nr=0,cand=-1;
scanf("%d",&n);
int v[n];
for(i=0;i<n;i++) scanf("%d",&v[i]);
mooreMajority(n,nr,cand,v);
printf("%d %d",cand,nr);
}
