Cod sursa(job #2263448)

Utilizator SqueekDanielTodasca Daniel SqueekDaniel Data 18 octombrie 2018 18:09:21
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

#define MaxN 1000005

std::ifstream InFile("elmaj.in");
std::ofstream OutFile("elmaj.out");

int N, NC, V[MaxN];
int X, Candidat, Cnt;

void Citire() {
    InFile >> N;
}

void Rezolvare() {
    Candidat = -1;

    NC = N;
    while(NC--) {
        InFile >> X;
        V[NC] = X;
        if (X == Candidat)
            Cnt ++;
        else
            Cnt--;

        if(Cnt<0)
            Candidat = X,
            Cnt = 1;
    }

    Cnt = 0;
    for (int i=0; i<N; ++i) {
        X = V[i];
        if (X == Candidat) Cnt++;
    }

    if (Cnt >= (N+1)/2) OutFile << Candidat << ' ' << Cnt << '\n';
    else OutFile << "-1\n";
}

int main()
{
    Citire();
    Rezolvare();

    return 0;
}