Cod sursa(job #1096233)
Utilizator | Andrei Stan StanAndrei | Data | 1 februarie 2014 18:51:32 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Teme Pregatire ACM Unibuc 2013 | Marime | 0.59 kb |
#include <stdio.h>
#define NMAX 1000005
using namespace std;
int N,NR,SOL,AUX,A[NMAX];
void solve()
{
scanf("%d\n",&N);
for (int i=1;i<=N;i++)
{
scanf("%d ",&A[i]);
if (!NR){NR++,AUX=A[i];}
else if (AUX==A[i]) NR++;
else NR--;
}
for (int i=1;i<=N;i++)
if (A[i]==AUX) SOL++;
if (SOL>=N/2+1) printf("%d %d",AUX,SOL);
else printf("-1\n");
}
int main()
{
freopen ("elmaj.in","r",stdin);
freopen ("elmaj.out","w",stdout);
solve();
fclose(stdin);
fclose(stdout);
return 0;
}