Cod sursa(job #1517873)

Utilizator projectanduFMI Stanescu Andrei Alexandru projectandu Data 4 noiembrie 2015 22:37:59
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
const int N=1e7+1;

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

int main()
{
    int *a,n,s=1,aux;
    d>>n;
    a=(int*)malloc(n*sizeof(int));
    for(int i=0;i<n;i++)
        d>>a[i];
    aux=a[0];
    for(int i=1;i<n;i++)
    {
        if(s==0)
        {
            aux=a[i];
            s=1;
        }
        else if(a[i]==aux)
                s++;
            else
                s--;
    }
    if(s==0)
        o<<"-1";
    else
    {
        s=0;
        for(int i=0;i<n;i++)
            if(aux==a[i])
                s++;
        if(s==n/2+1)
            o<<aux<<' '<<s;
        else
            o<<"-1";
    }
    return 0;
}