Cod sursa(job #1387528)

Utilizator raduaxel1Dilirici Radu raduaxel1 Data 14 martie 2015 13:22:11
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n, val1, val2, cnt, i, v[1000001], nr;
int main()
{
    fin>>n;
    fin>>val1;
    v[1]=val1;
    cnt=1;
    for (i=2; i<=n; i++)
    {
        fin>>val2;
        v[i]=val2;
        if (val2==val1)
        {
            cnt++;
        }
        else
        {
            cnt--;
            if (cnt==0)
            {
                val1=val2;
                cnt=1;
            }
        }
    }
    for (i=1; i<=n; i++)
        if (v[i]==val2)
            nr++;
    if (nr>=n/2+1)
        fout<<val2<<" "<<nr;
    else
        fout<<-1;
    return 0;
}