Cod sursa(job #1789493)

Utilizator OleaginoasaCristina Oleaginoasa Data 27 octombrie 2016 02:07:51
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
//
//  ElementMajoritar.cpp
//  BinarySearch
//
//  Created by Cristina Radulescu on 10/26/16.
//  Copyright © 2016 Cristina Radulescu. All rights reserved.
//


#include <cmath>
#include <cstdio>
#include <vector>
#include <stack>
#include <iostream>
#include <algorithm>
using namespace std;

vector<int> vec;
void elmaj(int n) {
    int candidate = 0, count = 0;
    
    for(int i = 0; i < n; ++i) {
        if(count == 0){
            candidate = vec[i];
            count++;
        }
        else if(vec[i] == candidate) {
            count++;
        }
        else {
            count--;
        }
    }
    
    count = 0;
    for(int i = 0; i < n; ++i) {
        if(vec[i] == candidate) {
            count++;
        }
    }
    
    if(count >= n/2+1){
        printf("%d %d", candidate, count);
    }
    else {
        printf("-1");
    }
}




int main(){
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    
    int n, elem;
    scanf("%d", &n);
    for(int i = 0; i < n; ++i){
        scanf("%d", &elem);
        vec.push_back(elem);
    }
    
    elmaj(n);
    
    return 0;
}