Cod sursa(job #1923737)

Utilizator tudortarniceruTudor Tarniceru tudortarniceru Data 11 martie 2017 23:15:33
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;

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

const int MAXN = 1000005;
int n;
int v[MAXN];

int main() {

    fin >> n;
    int c = -1;
    int k = 0;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        if (k == 0) {
            c = v[i];
            k = 1;
        }
        else if (v[i] == k) {
            k++;
        }
        else {
            k--;
        }
    }
    int nr = 0;
    for (int i = 1; i <= n; ++i) {
        if (c == v[i]) {
            nr++;
        }
    }
    if (nr >= (n / 2) + 1) {
        fout << c << ' ' << nr;
    }
    else {
        fout << "-1";
    }

    fout.close();
    return 0;
}