Cod sursa(job #1646694)

Utilizator gabib97Gabriel Boroghina gabib97 Data 10 martie 2016 17:15:36
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <ctype.h>
using namespace std;
int n,i,a[1000001],t,x,l,j,E;
char *b;
void citire()
{
    fseek(stdin,0,SEEK_END);
    l=ftell(stdin);
    rewind(stdin);
    b=(char*) malloc((l+1)*sizeof(char));
    fread(b,l,sizeof(char),stdin);
    for (j=0;isdigit(b[j]);j++) n=n*10+b[j]-'0';
    for (i=1;i<=n;i++)
        for (++j;isdigit(b[j]);j++) a[i]=a[i]*10+b[j]-'0';
}
int main()
{
    freopen ("elmaj.in","r",stdin);
    freopen ("elmaj.out","w",stdout);
    citire();
    E=-1;
    for (i=1;i<=n;i++)
        if (t==0) E=a[i];
        else if (a[i]==E) t++;
        else t--;
    if (E<0) printf("-1");
    t=0;
    for (i=1;i<=n;i++)
        if (a[i]==E) t++;
    if (t>n/2) printf("%i %i",E,t);
    else printf("-1");
    return 0;
}