Cod sursa(job #1497345)

Utilizator ancabdBadiu Anca ancabd Data 6 octombrie 2015 18:08:50
Problema Elementul majoritar Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

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

int main()
{
    int sm, cnt, nr, a[1000001], m, r = 0;
    fin >> m;
    for (int i = 1; i<=m; i++)fin >> a[i];

    sm = a[1];
    cnt = 1;
    for (int j = 2; j<=m; j++)
    {
        if (a[j]==sm)cnt++;
        else cnt--;
        if (cnt == 0)
        {
            sm = a[j];
            if (j!=m)cnt = 1;
        }
    }
    if (cnt != 0)
    {
        nr=0;
        for (int j = 1; j<= m; j++)
            if (a[j]==sm)nr++;

        if (nr >= m/2+1) r++;
    }
    if (r == 0)fout  << -1;
    else fout << sm << ' ' << nr;
    return 0;
}