Cod sursa(job #643349)

Utilizator proflaurianPanaete Adrian proflaurian Data 3 decembrie 2011 15:09:45
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;



int n,i,x[1000001],m,c,*p;

void read();
int main()
{
    read();
    m=x[0];c=1;
    for(p=x+1;*p;p++)
    {
        if(*p==m){c++;continue;}
        c--;
        if(c<0){c=1;m=*p;}
    }
    if(!c)printf("-1\n");
    else
    {
        for(p=x,c=0;*p;p++)
        if(*p==m)c++;
        if(c<=n-c)printf("-1\n");
        else printf("%d %d",m,c);
    }
    return 0;
}
void read()
{
    FILE * pFile;
    long lSize;
    char * buffer;
    size_t result;
    pFile = fopen ( "elmaj.in" , "rb" );
    fseek (pFile , 0 , SEEK_END);
    lSize = ftell (pFile);
    rewind (pFile);
    buffer = new char[lSize];
    result = fread (buffer,1,lSize,pFile);
    fclose (pFile);
    n=atoi(strtok(buffer," \n"));
    for(i=0;i<n;i++)x[i]=atoi(strtok(NULL," \n"));
    free (buffer);
}