Cod sursa(job #2241227)
Utilizator | Data | 15 septembrie 2018 12:50:47 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int v[1000005];
int main()
{
int n;
fin>>n;
for(int i = 1;i <= n; ++i)
fin >> v[i];
int x = v[1] ,nr = 1;
for(int i = 2;i <= n; ++i)
{
if(x != v[i])
nr--;
else
nr++;
if(nr < 0)
{
x = v[i];
nr=1;
}
}
nr = 0;
for(int i = 1;i <= n;i++)
{
if(v[i] == x)
nr++;
}
if(nr >= n/2+1)
fout<< x <<" "<< nr;
else
fout << "-1";
return 0;
}