Cod sursa(job #700462)
| Utilizator | Data | 1 martie 2012 10:29:00 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
using namespace std;
ifstream fi ("elmaj.in");
ofstream fo ("elmaj.out");
int N, k, maj, A[1000005];
int main ()
{
fi >> N;
for (int i = 1; i <= N; i++)
{
fi >> A[i];
if (k == 0)
{
maj = A[i];
k = 1;
}
else if (A[i] == maj)
k++;
else
k--;
}
k = 0;
for (int i = 1; i <= N; i++)
if (A[i] == maj)
k++;
if (k >= N/2+1)
fo << maj << ' ' << k << '\n';
else
fo << "-1\n";
return 0;
}
