Cod sursa(job #1684959)

Utilizator Dupree7FMI Ciobanu Andrei Dupree7 Data 11 aprilie 2016 13:27:05
Problema Elementul majoritar Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include<iostream>
#include<fstream>

using namespace std;

struct nod
{
 int numar, ap;
 nod *urm;
};

nod *pr, *ul, *maxim;

void inserare(nod *dpr, nod *dul, int x)
{
        if(pr == NULL)
            {
            pr = new nod;
            pr -> numar = x;
            pr -> ap = 1;
            pr -> urm = NULL;
            ul = pr;
            maxim = pr;
            }
        else
            {
            nod *p = pr;
            while(p && p -> numar != x)
                p = p -> urm;
            if(p)
                {
                p -> ap++;
                if(p -> ap > maxim -> ap)
                    maxim = p;
                }
            else
                {
                p = new nod;
            p -> numar = x;
            p -> ap = 1;
            p -> urm = NULL;
            ul -> urm = p;
            ul = p;
                }
            }
}


int main()
{
    int n, i, x;
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");

    f >> n;

    for(i = 0; i < n; i++)
        {
        f >> x;
        inserare(pr, ul, x);
        }

    if(maxim ->ap > n/2)
        g << maxim -> numar << " " << maxim -> ap;
    else
        g << -1;
    return 0;
}