Cod sursa(job #1649457)

Utilizator eu3neuomManghiuc Teodor-Florin eu3neuom Data 11 martie 2016 13:43:13
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

FILE *fin = fopen("elmaj.in", "r");
FILE *fout = fopen("elmaj.out", "w");

const int NMax = 1e6 + 5;

int v[NMax];

int main(){
    int n, best, ap;
    fscanf(fin, "%d", &n);
    best = -5; ap = 1;
    for(int i = 1; i <= n; i++){
        fscanf(fin, "%d", &v[i]);
        if(v[i] == best){
            ap++;
        } else {
            ap--;
            if(ap == 0){
                ap = 1;
                best = v[i];
            }
        }
    }
    ap = 0;
    for(int i = 1; i <= n; i++){
        if(v[i] == best) ap++;
    }
    if(ap >= (n / 2) + 1){
        fprintf(fout, "%d %d", best, ap);
    } else {
        fprintf(fout, "%d", -1);
    }
    return 0;
}