Cod sursa(job #1167610)

Utilizator alexandru70Ungurianu Alexandru alexandru70 Data 5 aprilie 2014 15:48:53
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>

using namespace std;

int main() {
    ifstream in("elmaj.in");

    size_t n;
    in >> n;
    unsigned nr;
    int cand = -1, k = 0;
    for(size_t i = 0; i < n; ++i) {
        in >> nr;
        if(k == 0) {
            cand = nr;
            k = 1;
        }
        else if(nr == cand)
            k++;
        else
            k--;
    }

    ofstream out("elmaj.out");

    if(cand < 0) {
        out << -1;
        return 0;
    }

    in.close();
    in.open("elmaj.in");

    in >> n;
    size_t cnt = 0;
    for(size_t i = 0; i < n; ++i) {
        in >> nr;
        if(cand == nr)
            cnt++;
    }
    if(cnt > n/2) {
        out << cand << ' ' << cnt << '\n';
    }
}