Cod sursa(job #1571905)

Utilizator dazxAndrei dazx Data 18 ianuarie 2016 17:01:13
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.14 kb
#include <bits/stdc++.h>

using namespace std;

//Uitai sa schimb.. mai patesti
ifstream f("elmaj.in");
ofstream g("elmaj.out");

const int niezau = 10000005;

int v[niezau]; //aparitii_ale_lui_iisus_pe_pamant[god];

int main(){
    int iubire, aparitie, maioneza, mustar = 0;
    f >> iubire;
    for(int i = 1; i<=iubire; i++){ //Iubirea creste treptat
        f >> v[i];
    }
    aparitie = 1; //De cate ori apare maioneza
    maioneza = v[1]; //Maioneza e ultimul element aka ala majoritar cica
    for(int i = 1; i<=iubire; i++){ //Iubirea creste din nou treptat
        if(v[i] != maioneza){
            aparitie--;
            if(aparitie == 0){
                aparitie = 1;
                maioneza = v[i];
            }
        } else {
            aparitie++;
        }
    }
    //Sa fie cu noroc
    for(int i = 1; i<=iubire; i++){
        if(v[i] == maioneza){
            mustar++;
        }
    }
    //Sa fie cu noroc x2
    if(mustar >= (iubire/2)+1){
        g << maioneza << " " << mustar;
    } else {
        g << "-1";
    }
    cout << "Doamne Ajuta (Arsenie Boca Aplified)\n";
    return 0;
}