Cod sursa(job #1730923)

Utilizator xSliveSergiu xSlive Data 17 iulie 2016 20:28:24
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>
#define NMAX 1000010
using namespace std;
unsigned int v[NMAX];
int el,n;
int maj,majf;
int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    f >> n;
    f >> maj;
    v[maj]++;
    majf=1;
    for(int i=1;i<n;i++){
        f >> el;
        v[el]++;
        if(el==maj) majf++;
        else{
            if(majf>1)  majf--;
            else maj=el;
        }
    }
    if(v[maj] >= n/2+1)  g << maj <<' ' << v[maj];
    else g << -1;
    return 0;
}