Cod sursa(job #1792481)

Utilizator FabiiFabiiDii Fabii Data 30 octombrie 2016 15:08:55
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#define MAXN 1000001
#define fin "elmaj.in"
#define fout "elmaj.out"

using namespace std;

ifstream p(fin);
ofstream t(fout);

int v[MAXN];
int n;


int main() {
    p >> n;
    p >> v[1];
    int candidat = 1;
    int vot = 1;

    for (int i = 2; i <= n; i++){
        p >> v[i];
        if( v[candidat] == v[i]) {
            vot++;
        }
        else {
            vot --;
        }
        if (vot == 0) {
            candidat = i;
            vot = 1;
        }
    }
    int z = 0;
    for (int i = 1; i <=n; i++) {
        if (v[i] == v[candidat])
            z++;
    }
    if (z > n/2) {
        t << v[candidat] << " " << z;
    }
    else {
        t << "-1";
    }

  return 0;

}