Cod sursa(job #1007907)

Utilizator cristianalex81Cristian Alexandru cristianalex81 Data 9 octombrie 2013 21:04:07
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <map>
#define dim 1000001

using namespace std;

int n,k,a[dim];

int main()
{
    ifstream cin("elmaj.in");
    ofstream cout("elmaj.out");

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

    if (count > 0)
    {
        int total = 0;
        for (int i=0;i<n;i++)
        {
            if (a[i]==cand)
                total ++;
        }
        if (total >= k)
        {
            cout<<cand<<" "<<total<<endl;
        }
        else
            cout<<-1<<endl;
    }
    else
        cout<<-1<<endl;

return 0;
}