Cod sursa(job #1171304)

Utilizator AndreiBarbutaAndrei Barbuta AndreiBarbuta Data 15 aprilie 2014 15:30:18
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int v[1000000];

int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    int n,i,k,med,st,dr,ok1,ok2;
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    sort(v+1,v+n+1);
    med=n/2;
    if(v[med]==v[med+1] and v[med]==v[med-1]){
        st=med-2;
        dr=med+2;
        ok1=1;
        ok2=1;
        k=3;
        for(i=1;i<=med;i++){
            if(v[st]==v[med] and ok1==1){
                k++;
                st--;
            }
            else
                ok1=0;
            if(v[dr]==v[med] and ok2==1){
                k++;
                dr++;
            }
            else
                ok2=0;
        }
        g<<v[med]<<" "<<k;
    }
    else
        g<<"-1";
    return 0;
}