Cod sursa(job #2631516)
Utilizator | Sebastian Chirodea chiro | Data | 30 iunie 2020 13:54:31 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 40 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.86 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f;
ofstream g;
long n, maj, nr, i;
int main()
{
f.open("elmaj.in");
g.open("elmaj.out");
f >> n;
long v[n];
for(i = 0; i < n; i++)
{
f >> v[i];
if(v[i] == maj)
nr++;
else
{
if(nr == 0)
{
nr = 1;
maj = v[i];
}
else
nr--;
}
}
if(nr == 0)
g << -1;
else
{
nr = 0;
for(i = 1; i <= n; i++)
{
f >> v[i];
if(v[i] == maj)
nr++;
}
if(nr >= n/2 + 1)
g << maj << " " << nr;
else
g << -1;
}
f.close();
g.close();
return 0;
}