Cod sursa(job #1414435)

Utilizator BogdanisarBurcea Bogdan Madalin Bogdanisar Data 2 aprilie 2015 16:55:07
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 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;
        }
    }
    if (nr>0)
    {
        nr=0;
        FOR (i,1,N)
        {
            if (v[i]==elem)
                ++nr;
        }
        if (nr>=N/2+1)
            g<<elem<<' '<<nr;
        else
            g<<-1;
    }
    else
        g<<-1;
    f.close();g.close();
    return 0;
}