Cod sursa(job #643742)

Utilizator lavinia_nLavinia Nastase lavinia_n Data 4 decembrie 2011 13:05:09
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include<stdio.h>
#include<stdlib.h>
#include<fstream>

using namespace std; 

ifstream in("elmaj.in");
ofstream out("elmaj.out");

const int N=1000001;

int maj(int n, int a[]) {
    int cand = -1, k = 0;
    for (int i = 0; i < n; i++) {
        if (!k) {
           cand = a[i];
           k = 1;
           } 
        else 
             if (a[i] == cand) {
                k++;   
             } 
             else
                 k--;  
    }
    if (cand < 0)
       return cand;
    int nr = 0;
    for (int i = 0; i < n; i++) {
        if (a[i] == cand)
        nr++;
    }
    if (nr > n / 2)
       return cand;
    else
        return -1;
}

int main(){
    int i,n,v[100];
    in>>n;
    for(i=0;i<n;i++)
           in>>v[i];
    out<<maj(n,v);
    in.close();
    out.close();
    return 0;
}