Cod sursa(job #1414432)

Utilizator BogdanisarBurcea Bogdan Madalin Bogdanisar Data 2 aprilie 2015 16:49:52
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<bitset>
#include<cstring>

#define ull unsigned long long
#define ll long long
#define FOR(a,b,c) for (int a=b;a<=c; ++a)
#define ROF(a,b,c) for (int a=b;a>=c; --a)

using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int N,elem,nr;
int v[1000005];

int main()
{
    f>>N;
    elem=-1;
    nr=1;
    FOR (i,1,N)
    {
        f>>v[i];
        if (v[i]==elem)
            ++nr;
        else
        {
            --nr;
            if (nr==0) elem=v[i],nr=1;
        }
    }
    nr=0;
    FOR (i,1,N)
    {
        if (v[i]==elem)
            ++nr;
    }
    if (nr>=N/2+1)
        g<<elem<<' '<<nr;
    else
        g<<-1;
    f.close();g.close();
    return 0;
}