Cod sursa(job #1755476)

Utilizator Cristi01052Tudorache Christian Cristi01052 Data 10 septembrie 2016 12:35:40
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>

using namespace std;
const int N = 1000001;
int v[N];
int main()
{
    FILE *in, *out;
    in = fopen ("elmaj.in", "r");
    out = fopen ("elmaj.out", "w");
    int i, n;
    fscanf(in, "%d", &n);
    for (i = 0; i < n; i++)
        fscanf(in, "%d", &v[i]);
    int nrap = 0, cand = -1;
    for (i = 0; i < n; i++)
    {
        if(cand != v[i] && nrap == 0)
        {
            nrap = 1;
            cand = v[i];
        }
        else
        {
            if (cand == v[i])
                nrap++;
            else
                nrap--;
        }
    }
    nrap = 0;
    for (i = 0; i < n; i++)
    {
        if(v[i] == cand)
            nrap++;
    }
    if(nrap >= n/2+1)
        fprintf(out, "%d %d", cand, nrap);
    else
        fprintf(out, "-1");
    return 0;
}