Cod sursa(job #2631341)
Utilizator | Sebastian Chirodea chiro | Data | 29 iunie 2020 22:32:43 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 80 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f;
ofstream g;
long n, maj, crt, nr, i;
int main()
{
f.open("elmaj.in");
g.open("elmaj.out");
f >> n;
for(i = 0; i <= n; i++)
{
f >> crt;
if(crt == maj)
nr++;
else
{
if(nr == 0)
{
nr = 1;
maj = crt;
}
else
nr--;
}
}
if(nr == 0)
g << -1;
else
{
f.close();
f.open("elmaj.in");
f >> n;
nr = 0;
for(i = 1; i <= n; i++)
{
f >> crt;
if(crt == maj)
nr++;
}
if(nr >= n/2 + 1)
g << maj << " " << nr;
else
g << -1;
}
return 0;
}