Cod sursa(job #1314575)

Utilizator retrogradLucian Bicsi retrograd Data 11 ianuarie 2015 23:24:48
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<vector>
#include<algorithm>
#include<cstdio>
#include<iostream>
 
using namespace std;
 
 
int n, cur, cand, ap;
int A[1000001];
int main() {
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    cin>>n>>cand;
    A[0] = cand;
    ap = 1;
    for(int i=1; i<n; i++) {
        scanf("%d", &A[i]);
        if(A[i] != cand) {
            ap--;
            if(ap == 0) {
                cand = A[i];
                ap = 1;
            }
        } else {
            ap++;
        }
    }
    ap = 0;
 
    int poz;
    for(int i=0; i<n; i++) {
        if(A[i] == cand) {
            ap++;
        }
    }
    if(ap > n/2) cout<<cand<<" "<<ap;
    else cout<<-1;
 
    return 0;
}