Pagini recente » Cod sursa (job #2851519) | Cod sursa (job #266984) | Cod sursa (job #1173379) | Cod sursa (job #2706864) | Cod sursa (job #1148569)
#include<fstream>
#include<algorithm>
using namespace std;
/*FILE *f=fopen("majoritar.in","r");
FILE *g=fopen("majoritar.out","w");*/
//ifstream f("elmaj.in");
//ofstream g("elmaj.out");
ifstream f("majoritar.in");
ofstream g("majoritar.out");
struct nod
{
unsigned int inf;
int nrap;
nod* ld,*ls;
};
typedef nod* PNod;
PNod L[200000];
int ok=0,n;
unsigned int elmaj,v[1000005];
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;
f>>n;
for(i=1;i<=n;i++)
{
f>>v[i];
}
sort(v+1,v+n+1);
for(i=1;i<=n;i++)
{
update(r,v[i]);
}
if(ok==1)
g<<elmaj<<" "<<NapEL;
else g<<-1;
return 0;
}