Cod sursa(job #1119287)

Utilizator victormarinMarin Victor victormarin Data 24 februarie 2014 16:44:45
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>
#define filein "elmaj.in"
#define fileout "elmaj.out"
using namespace std;

int v[1000001];
int n;

int main()
{
    FILE *in,*out;
    in=fopen(filein,"r");
    out=fopen(fileout,"w");
    fscanf(in,"%d",&n);
    int i,a,x,k=1;
    fscanf(in,"%d",v+1);
    a=v[1];
    for (i=2; i<=n; i++)
    {
        fscanf(in,"%d",v+i);
        if (v[i]==a)
            k++;
        else k--;
        if (k<0)
        {
            k=1;
            a=v[i];
        }
    }
    if (k<=0)
    {
        fputs("-1",out);
    }
    else
    {
        k=0;
        for (i=1; i<=n; i++)
            if (v[i]==a) k++;
        if (k>n/2)
            fprintf(out,"%d %d",a,k);
        else fputs("-1",out);
    }
    fclose(in);
    fclose(out);
    return 0;
}