Cod sursa(job #1278041)

Utilizator adi_ispas95FMI - Adrian Ispas adi_ispas95 Data 28 noiembrie 2014 14:13:05
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.87 kb
#include <iostream>
#include <fstream>

using namespace std;

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

void element_majoritar (int n, int  a[]) {
    int cand = -1, k = 0;

    for (int i = 0; i < n; i++)
        {
        if (k == 0)
            {
            cand = a[i];
            k = 1;
            }
        else
            if (a[i] == cand)
            {
                k++;
            }
            else
                k--;
        }

    //if (cand < 0)
      //  g << cand;

    int nr = 0;

    for (int i = 0; i < n; i++) {
        if (a[i] == cand)
            nr++;
    }
    if (nr > n / 2)
        g << cand << " " << nr;
    else
        g << -1;
}

int main()
{
    int x[2000000], n, j, i, k;

    f >> n;

    for (i = 0; i < n; i++)
        f >> x[i];

   element_majoritar (n, x);

   return 0;
}