Cod sursa(job #1184453)

Utilizator dragos03dragos popescu septimiu dragos03 Data 12 mai 2014 19:24:00
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
using namespace std;

int tab[1000000];

int main() {
    int i, elem, k = 0, n;
    ifstream fin("elmaj.in");
    ofstream fout("elmaj.out");
    fin >> n;
    for(i = 0; i < n; i++) {
        fin >> tab[i];
        if(k == 0) {
            elem = tab[i];
            k = 1;
        } else {
            if(elem == tab[i]) k++;
            else k--;
        }
    }
    if(k == 0) {
        fout << -1;
    } else {
        k = 0;
        for(i = 0; i < n; i++) {
            if(tab[i] == elem) {
                k++;
            }
        }
        if(k >= n/2 + 1) fout << elem << " " << k;
        else fout << -1;
    }
    return 0;
}