Cod sursa(job #1939572)

Utilizator nicu_serteSerte Nicu nicu_serte Data 25 martie 2017 20:25:15
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n, v[1000001];
int main()
{
    int i, nr, elem;
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];
    fin.close();
    elem=v[1];
    nr=1;
    for(i=2; i<=n; i++)
    {
        if(v[i]==elem)
            nr++;
        else
            nr--;
        if(nr<0)
        {
            nr=1;
            elem=v[i];
        }
    }
    nr=0;
    for(i=1; i<=n; i++)
        if(v[i]==elem)
            nr++;
    if(nr>=n/2+1)
        fout<<elem<<' '<<nr<<'\n';
    else fout<<"-1\n";
    fout.close();
    return 0;
}