Cod sursa(job #1646681)

Utilizator gabib97Gabriel Boroghina gabib97 Data 10 martie 2016 17:12:03
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <ctype.h>
using namespace std;
int n,i,a[1000001],t,x,l,j;
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();
    nth_element(a+1,a+n/2,a+n+1);
    x=a[n/2];
    for (i=1;i<=n;i++)
        if (a[i]==x) ++t;
    if (t>n/2) printf("%i %i",x,t);
    else printf("-1");
    return 0;
}