Cod sursa(job #2165195)

Utilizator AndreiVisoiuAndrei Visoiu AndreiVisoiu Data 13 martie 2018 11:26:34
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

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

int v[1000000];
int n, x, c, candidat;
int main()
{
    in >> n;
    for(int i = 0; i < n; i++) in >> v[i];

    candidat = v[0], c = 1;

    for(int i = 1; i < n; i++) {
        if(v[i] == candidat) c++;
        else c--;

        if(c == 0) candidat = v[i], c = 1;
    }

    c = 0;
    for(int i = 0; i < n; i++) {
        if(v[i] == candidat) c++;
    }

    if(c >= n/2+1) out << candidat << " " << c;
    else out << "-1";

    in.close(), out.close();
    return 0;
}