Cod sursa(job #2174605)

Utilizator alexoloieriAlexandru Oloieri alexoloieri Data 16 martie 2018 12:44:23
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;
FILE *fout=fopen("elmaj.out","w");

int n;
int poatefi;
int nrap;
int aparitii;
int x;
int a[1000005];

int main()
{
    FILE *fin=fopen("elmaj.in","r");
    fscanf(fin,"%d",&n);
    nrap++;
    fscanf(fin,"%d",&poatefi);
    a[1]=poatefi;
    for (int i=2;i<=n;++i)
    {
        fscanf(fin,"%d",&x);
        a[i]=x;
        if (x!=poatefi)
        {
            nrap--;
            if (nrap<0)
            {
                nrap=1;
                poatefi=x;
            }
        }
        else
        nrap++;
    }
    for (int i=1;i<=n;++i)
    {
        if (a[i]==poatefi)
            ++aparitii;
    }
    if (n/2<=aparitii)
        fprintf(fout,"%d %d\n",poatefi,aparitii);
        else fprintf(fout,"-1\n");
}