Cod sursa(job #1571890)

Utilizator dazxAndrei dazx Data 18 ianuarie 2016 16:55:02
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.08 kb
#include <bits/stdc++.h>

using namespace std;

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

const int niezau = 1e6;

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 = v[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 == aparitie){
        g << maioneza << " " << mustar;
    } else {
        g << "-1";
    }
    return 0;
}