Cod sursa(job #1496006)

Utilizator vladcfVlad Frasineanu vladcf Data 4 octombrie 2015 02:37:54
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;

int find_number(int* v, int n)
{
    int cnt = 0, nr, i;
    for (i=0;i<n;i++)
    {
        if (cnt == 0)
        {
            nr = v[i];
            cnt++;
        }
        else
        if (v[i] == nr) cnt++;
        else cnt--;
    }
    return nr;
}

int main()
{
    ifstream f("elmaj.in");
    int n,i;
    f >> n;
    int *v = new int[n];
    for (i=0;i<n;i++) f >> v[i];
    f.close();

    int x = find_number(v,n);
    int cnt = 0;
    for (i=0;i<n;i++)
        if (v[i] == x) cnt++;

    ofstream g("elmaj.out");
    if (cnt>n/2) g << x << " " << cnt;
    else g << -1;
    g.close();

    delete[] v;
    return 0;
}