Pagini recente » Cod sursa (job #577108) | Cod sursa (job #2845384) | Cod sursa (job #1141747) | Cod sursa (job #1404503) | Cod sursa (job #1148561)
#include<cstdio>
using namespace std;
FILE *f=fopen("majoritar.in","r");
FILE *g=fopen("majoritar.out","w");
struct nod
{
unsigned int inf;
int nrap;
nod* ld,*ls;
};
typedef nod* PNod;
PNod L[200000];
int ok=0,n;
unsigned int elmaj;
int NapEL;
void update(PNod &p,unsigned int x)
{
if(p)
{
if(p->inf==x)
{
p->nrap++;
if(p->nrap>=n/2+1)
{
elmaj=p->inf;
NapEL=p->nrap;
ok=1;
}
return;
}
if(p->inf>x) update(p->ld,x);
else update(p->ls,x);
}
else
{
p=new nod;
p->inf=x;
p->ls=p->ld=0;
p->nrap=1;
}
}
int main()
{
int x,i;
PNod r=0;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&x);
update(r,x);
}
if(ok==1)
fprintf(g,"%u %d",elmaj,NapEL);
else fprintf(g,"-1");
return 0;
}