Cod sursa(job #2241899)

Utilizator pinteastefanPintea Teodor Stefan pinteastefan Data 17 septembrie 2018 12:27:42
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;
pair <int, int> number;
int x[1000001];
int main() {
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    int n, nr = 0;
    f >> n;
    f >> x[1];
    number.first = x[1];
    number.second = 1;
    for (int i = 2; i <= n; i++){
        f >> x[i];
        if (x[i] != number.first){
            number.second --;
        } else {
            number.second ++;
        }
            if (number.second <= 0){
                number.first = x[i];
                number.second ++;
        }
    }
    for (int i = 1; i<= n; i++){
        if (x[i] == number.first){
            nr++;
        }
    }
    if (nr == (n/2 + 1)) {
        g << number.first << " " << nr;
    } else{
        g << -1;
    }
    return 0;
}