Pagini recente » Cod sursa (job #169260) | Cod sursa (job #1084727) | Cod sursa (job #1652416) | Cod sursa (job #1127268) | Cod sursa (job #1810778)
#include <cstdio>
#include <algorithm>
using namespace std;
#define buff_size 104576
char buff[buff_size];
int pos=0;
inline void read(int &nr)
{
while(!isdigit(buff[pos])) if(++pos == buff_size) fread(buff, 1,buff_size, stdin), pos = 0;
nr = 0;
while(isdigit(buff[pos]))
{
nr = (nr<<1)+(nr<<3)+ buff[pos] - 48;
if(++pos == buff_size) fread(buff, 1, buff_size, stdin), pos = 0;
}
}
char outBuff[buff_size];
int outPtr;
inline void putChar(const char &C) {
outBuff[outPtr++] = C;
if (outPtr == buff_size) {
fwrite(outBuff, 1, buff_size, stdout);
outPtr = 0;
}
}
inline void write(int X) {
static char digs[10];
int n = 0, q;
do {
q = X / 10;
digs[n++] = X - (q << 1) - (q << 3) + 48;
X = q;
} while (X);
while (n--) {
putChar(digs[n]);
}
putChar(' ');
}
int n,x,pairs=0,v[100000000]={0},maj;
int main()
{ freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
fread(buff, 1,buff_size, stdin);
read(n);
for(int i=1;i<=n;++i)
{
read(x);v[x]++;
if(!pairs) maj=x,++pairs;
else if(v[i]==maj) ++pairs;
else --pairs;
}
if(v[maj]>n/2) write(maj),write(v[maj]);
else putChar('-'),putChar('1');
fwrite(outBuff, 1, outPtr, stdout);
}