Cod sursa(job #1538171)
| Utilizator | Data | 28 noiembrie 2015 16:47:32 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
#define nmax 1000010
using namespace std;
int n,i,t[nmax],nr,x;
int main() {
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d",&t[i]);
x=t[1]; nr=1;
for (i=2;i<=n;i++) {
if (x!=t[i]) {
nr--;
if (nr==0) nr=1,x=t[i];
} else nr++;
}
nr=0;
for (i=1;i<=n;i++)
if (t[i]==x) nr++;
if (nr>=n/2+1) printf("%d %d",x,nr); else
printf("-1");
return 0;
}
