Cod sursa(job #2980205)
Utilizator | Data | 16 februarie 2023 11:38:31 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("elmaj.in");
ofstream fout ("elmaj.out");
const int dim = 1e6 + 5;
int v[dim] , n;
int main()
{
fin >> n;
for(int i = 1 ; i <= n ; ++i) fin >> v[i];
int cand = -1 , k = 0;
for(int i = 1 ; i <= n ; ++i)
{
if(k == 0)
{
cand = v[i];
k = 1;
}
else if(v[i] == cand) ++k;
else --k;
}
int ap = 0;
for(int i = 1 ; i <= n ; ++i)
if(v[i] == cand) ap++;
if(ap > n/2) fout << cand << " " << ap;
else fout << -1;
}