Cod sursa(job #1163848)

Utilizator cristitamasTamas Cristian cristitamas Data 1 aprilie 2014 17:29:54
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

int N,V[1000010];
int Nr;
int C=-1;


int Rezolvare()
{
    int k=0;
    for(int i=0;i<N;++i)
    {
        if(k==0)
        {
            C=V[i];
            k=1;
        }
        else if(V[i]==C)
                    k++;
             else
                    k--;
    }
    if(C<0)
        return C;
    for(int i=0;i<N;++i)
        if(V[i]==C)
            Nr++;
    if(Nr>N/2)
        return Nr;
    else
        return -1;
}

int main()
{
    f>>N;
    for(int i=0;i<N;++i)
        f>>V[i];
    int x=Rezolvare();
    if(x<0)
        g<<x;
    else
        g<<C<<" "<<x;
    return 0;
}