Pagini recente » Cod sursa (job #1009015) | Cod sursa (job #1054825) | Cod sursa (job #2142016) | Cod sursa (job #2043067) | Cod sursa (job #1889754)
#include<cstdio>
#include<cctype>
#define NMAX 1000000
#define LMAX 1 << 19
using namespace std;
int v[NMAX], n, pos = LMAX;
char buf[LMAX];
inline char getCh(FILE *fin)
{
if(pos == LMAX)
{
fread(buf,1,LMAX,fin);
pos = 0;
}
return buf[pos++];
}
inline int read(FILE *fin)
{
int rez = 0;
char c;
do
{
c = getCh(fin);
}while(!isdigit(c));
do
{
rez = 10*rez + c - '0';
c = getCh(fin);
}while(isdigit(c));
return rez;
}
int main()
{
int i, ap, candidat;
FILE *fin, *fout;
fin = fopen("elmaj.in","r");
fout = fopen("elmaj.out","w");
n = read(fin);
for(i=0; i<n; i++)
v[i] = read(fin);
fclose(fin);
candidat = v[0];
ap = 1;
for(i=1; i<n; i++)
if(v[i] == candidat)
ap++;
else if(ap > 0)
ap--;
else
{
candidat = v[i];
ap = 1;
}
ap = 0;
for(i=0; i<n; i++)
if(v[i] == candidat)
ap++;
if(ap > n/2)
fprintf(fout,"%d %d\n",candidat,ap);
else fprintf(fout,"-1\n");
fclose(fout);
return 0;
}