Cod sursa(job #1732185)

Utilizator codebreaker24Tivadar Ionut codebreaker24 Data 21 iulie 2016 01:29:25
Problema Elementul majoritar Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 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 =0;
    for(i=2; i<=n; i++)
    {
        if (a[i] == candit)
        nr++;
        else
        {
           nr--;
        if (!nr)
        {
            candit = a[i];
        }
        }
 
    }
    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;
 
}