Cod sursa(job #1193551)
| Utilizator | Data | 31 mai 2014 23:08:52 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <cstdio>
using namespace std;
#define NMAX 1000001
int V[NMAX];
int EM,N,k,A,i;
int main()
{
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
scanf("%d%d",&N,&V[1]);
EM=V[1];k=1;
for (i=2;i<=N;++i)
{
scanf("%d",&V[i]);
(V[i]==EM) ? ++k : --k;
if (k<0)
{
EM=V[i];
k=1;
}
}
for (i=1;i<=N;++i)
if (EM==V[i]) ++A;
(A>=N/2+1) ? printf("%d %d\n",EM,A) : printf("-1\n");
return 0;
}
