Cod sursa(job #797459)
Utilizator | Radu Stancu radustn92 | Data | 14 octombrie 2012 02:28:35 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include <stdio.h>
#include <fstream>
#include <string.h>
#define NMAX 1000005
#define LMAX 12
using namespace std;
int n,A[NMAX],B[NMAX],r,rez;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
int main()
{
in>>n;
int i,j;
for (i=1; i<=n; i++)
{
in>>A[i];
if (!r || B[r]==A[i])
B[++r]=A[i];
else
r--;
}
if (!r)
{
out<<"-1\n";
return 0;
}
for (i=1; i<=n; i++)
if (A[i]==B[1])
rez++;
if (rez>=n/2+1)
{
out<<B[1]<<' '<<rez<<'\n';
return 0;
}
out<<"-1\n";
return 0;
}