Cod sursa(job #2000859)

Utilizator rexlcdTenea Mihai rexlcd Data 14 iulie 2017 21:31:58
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.61 kb
#include <iostream>
#include <fstream>

using namespace std;

int v[1000002];

int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    int n;
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
    int nr=v[1],k=1;
    for(int i=2;i<=n;i++)
    {
        if(v[i]==nr)
            k++;
        else if(k)
            k--;
        if(k==0)
            nr=v[i],k=1;
    }
    k=0;
    for(int i=1;i<=n;i++)
        if(v[i]==nr)
            k++;
    if(k>=(n/2+1))
        g<<nr<<" "<<k<<'\n';
    else
        g<<-1<<'\n';
    f.close();
    g.close();
    return 0;
}