Cod sursa(job #1710549)

Utilizator Cristi01052Tudorache Christian Cristi01052 Data 29 mai 2016 11:45:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>

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