Cod sursa(job #2555106)
| Utilizator | Data | 23 februarie 2020 18:28:15 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <bits/stdc++.h>
#define NMAX 1000001
using namespace std;
ifstream fin ("elmaj.in");
ofstream fout ("elmaj.out");
int v[NMAX];
int main () {
int n;
int emaj;
int f = 0;
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
emaj = v[1];
for (int i = 1; i <= n; i++) {
if (v[i] == emaj)
f++;
else
f--;
if (f == 0) {
emaj = v[i];
f = 1;
}
}
f = 0;
for (int i = 1; i <= n; i++)
if (v[i] == emaj)
f++;
if (f >= n / 2 + 1)
fout << emaj << ' ' << f;
else
fout << -1;
}
