Cod sursa(job #2145091)
Utilizator | Mihalut Filip filip.mihalut | Data | 27 februarie 2018 08:41:10 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <bits/stdc++.h>
#define Nmax 1000005
using namespace std;
ifstream f ("elmaj.in");
ofstream g ("elmaj.out");
int a[Nmax],n,nr,k = 0,i;
int main()
{
f >> n;
nr = -1;
for(i = 1;i <= n;i++)
{
f >> a[i];
if(k == 0)
{
nr = a[i];
k = 1;
}
else if(nr == a[i])
k++;
else k--;
}
k = 0;
for(i = 1;i <= n;i++)
k += (a[i] == nr);
if(k > n /2)
g << nr << " " << k;
else
g << -1;
return 0;
}