Cod sursa(job #1080738)

Utilizator IeewIordache Bogdan Ieew Data 12 ianuarie 2014 20:41:29
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>

using namespace std;

#define DEBUG false
#define MAXN 1000000

#if DEBUG
#include <iostream>
#define INFILE "/Users/biordach/Documents/Xcode Projects/training/training/elmaj.in"
#define __OUT cout
#else
#define INFILE "elmaj.in"
#define OUTFILE "elmaj.out"
ofstream __OUT(OUTFILE);
#endif

int n, a[MAXN], sol, ap;

void readInput();
void solve();
void printOutput();

int main(int argc, const char * argv[])
{
    readInput();
    solve();
    printOutput();

#if DEBUG == false
    __OUT.close();
#endif
    
    return 0;
}

void readInput(){
    ifstream in(INFILE);
    in>>n;
    for(int i=0;i<n;i++){
        in>>a[i];
    }
    in.close();
}

void solve(){
    sol = a[0];
    ap = 1;
    for(int i=1; i<n; i++)
        if(a[i] == sol)
            ap ++;
        else {
            ap --;
            if(ap == 0){
                sol = a[i];
                ap = 1;
            }
        }
    ap = 0;
    for(int i=0;i<n;i++)
        if(a[i] == sol)
            ap ++;
    
}

void printOutput(){
    if(ap < n/2 + 1) {
        __OUT<<-1<<'\n';
    } else __OUT<<sol<<' '<<ap<<'\n';

}