Cod sursa(job #1443314)
| Utilizator | Data | 27 mai 2015 16:51:12 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n, i, fact, k, nr;
int a[1000001];
int main()
{
f >> n;
for (i = 1; i <= n; i++)
f >> a[i];
fact = -1;
for (i = 1; i <= n; i++)
{
if (!k)
fact = a[i], k = 1;
else if (a[i] == fact)
k++;
else
k--;
}
for (i = 1; i <= n; i++)
if (a[i] == fact)
nr++;
if (nr > n/2)
g << fact << " " << nr;
else
g << -1;
return 0;
}
