Cod sursa(job #1204673)

Utilizator serban_andreiserban andrei-catalin serban_andrei Data 3 iulie 2014 16:57:44
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <cstdio>
using namespace std;
int maj,ap=0,c,n,i,v[1000005];
int main()
{
    FILE*f=fopen("elmaj.in","r");
    FILE*g=fopen("elmaj.out", "w");
    fscanf(f,"%d", &n);
    fscanf(f, "%d",&maj);
    v[1]=maj;
    for(i=2;i<=n;i++)
    {
        fscanf(f, "%d", v+i);
        if(maj==v[i])ap++;
        else if(ap-1>0)ap--;
        else if(ap-1==0)
        {
            maj=v[i];
            ap=0;
        }
        else if(ap==0)maj=v[i];
    }
    fclose(f);
    f=fopen("elmaj.in","r");
    fscanf(f,"%d", &n);
           ap=0;
    for(i=1;i<=n;i++)
    {
        //fscanf(f,"%d", &c);
        if(maj==v[i])ap++;

    }
    if(ap>=n/2+1)fprintf(g,"%d %d",maj,ap);
    else fprintf(g,"-1");
    return 0;
}