Cod sursa(job #760809)

Utilizator Theorytheo .c Theory Data 23 iunie 2012 00:16:11
Problema Elementul majoritar Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include<algorithm>
#define nmax 1000008
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");

long N, v[nmax*100], K, gasit = 0, nr;

void read()
{
    fin >>N;
    int x;
    fin >>x;
    v[1] = x;
    nr = 1;
    for(int i = 2; i <= N; i++)
    {
        fin >>v[i];
        if(x==v[i])
            nr++;
        else
            nr--;
        if(nr>=0)
            {
                nr = 0;
                x = v[i];
            }
    }
    nr= 0;
    for(int i = 1; i <= N; i++)
        if(x==v[i])
            nr++;
    if(nr>= N/2)
        fout << x << " " <<nr;
    else
    fout<<"-1";

}
int main()
{
    read();
    fin.close();
    return 0;
}