Cod sursa(job #1732189)

Utilizator codebreaker24Tivadar Ionut codebreaker24 Data 21 iulie 2016 01:32:41
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
# include <fstream>
# define  Nmax 1000000
using namespace std;
typedef long int sir[Nmax];

ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n, k, nr;
sir a;
void citire ()
{
    int i;
    f >> n;
    for(i=1; i<=n; i++)
    {
         f >> a[i];
    }
    f.close();

}

void alg()
{
    int i;
    long int candit = a[1];
    nr =1 ;
    for(i=2; i<=n; i++)
    {
        if (a[i] == candit)
        nr++;
        else
        {
           nr--;
        if (!nr)
        {
            candit = a[i];
            nr = 1;
        }
        }

    }
    nr = 0;
    for (i=1;i<=n;i++)
    {
        if (a[i] == candit)
        nr++;
    }

    if (nr >= n/2+1)
    k = candit;
    else
    k = -1;
}
void scrie()
{
    g << k << ' ' << nr << '\n';
    g.close();
}
int main()
{
    citire();
    alg();
    scrie();
    return 0;

}