Cod sursa(job #1573957)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 20 ianuarie 2016 01:06:38
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n;
int *v;

int main()
{
    in>>n;
    v = new int[n+1];
    for(int i=1;i<=n;i++)
        in>>v[i];
    in.close();
    int elem = 0;
    int nr = 0;
    for(int i=1;i<=n;i++)
    {
        if(!nr)
           {
               elem = v[i];
               nr = 1;
           }
        else
            if(v[i]==elem)
            nr++;
        else
            nr--;
    }
    nr = 0;
    for(int i=1;i<=n;i++)
        if(v[i]==elem)
        nr++;
    if(nr >= n/2 + 1)
        out<<elem<<" "<<nr<<'\n';
    else
        out<<-1;
    out.close();
    delete[] v;
    return 0;
}