Cod sursa(job #1214483)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 30 iulie 2014 15:48:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");

int n,v[1000009];

void solve(int v[],int n)
{

    int cand = -1,k = 0,i;
    for( i = 1 ; i <= n ; i++){
        if(k == 0){
            cand = v[i];
            k++;
        }
        else if(v[i] == cand)
            k++;
        else
            k--;
    }
    if(cand < -1)
         out<<cand;
    int p = 0;
    for(i = 1 ; i <= n ; i++)
        if(v[i] == cand)
            p++;
    if(p > n/2)
        out<<cand<<" "<<p;
    else out<<-1;

}

int main()
{

    in>>n;
    for(int i = 1 ; i <= n ; i++)
        in>>v[i];
    solve(v,n);
    return 0;
}