Cod sursa(job #1839397)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 2 ianuarie 2017 21:03:48
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>

using namespace std;

vector <int> v;
int t, x, k, m, n;

int main()
{
    ifstream fin ("elmaj.in");
    ofstream fout ("elmaj.out");
    fin >> t >> x; n = t;
    v.push_back(x);
    --t;
    k = 1; m = x;
    while(t--){
        fin >> x;
        v.push_back(x);
        if (x == m)
            ++k;
        else if (k > 0)
            --k;
        else{
            m = x;
            k = 1;
        }
    }
    k = 0;
    for (unsigned i = 0; i < v.size(); ++i)
        if (v[i] == m)
            ++k;
    if (k >= n/2 + 1)
        fout << m << " " << k << "\n";
    else fout << "-1\n";
    fin.close();
    fout.close();
    return 0;
}