Cod sursa(job #1100606)

Utilizator alexandrutarcanTarcan Alexandru alexandrutarcan Data 7 februarie 2014 09:00:43
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.77 kb
#include<fstream>
using namespace std;
long long v[100],n,i,x,maj,nrmaj;
int main()
{
    FILE *fin,*fout;
    fin=fopen("elmaj.in","r");
    fout=fopen("elmaj.out","w");
    fscanf(fin,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(fin,"%d",&v[i]);
    maj=v[1];
    nrmaj=1;
    for(i=2;i<=n;i++)
    {
        if(maj==v[i])
            nrmaj++;
        else
        {
            nrmaj--;
            if(nrmaj<0)
            {
                maj=v[i];
                nrmaj=1;
            }
        }
    }
    x=0;
    if(nrmaj!=0)
    {
        for(i=1;i<=n;i++)
            if(v[i]==maj)
                x++;
        if(x>=n/2+1)
            fprintf(fout,"%d %d",maj,x);
        else
            fprintf(fout,"-1");
    }
    return 0;
}