Pagini recente » Cod sursa (job #3133923) | Cod sursa (job #3297174) | Cod sursa (job #3189133) | Cod sursa (job #715812) | Cod sursa (job #724140)
Cod sursa(job #724140)
type ref=^nod;
nod=record
val,nr:longint;
adr:ref;
end;
var hash:array[0..1000005] of ref;
n,v,i,poz,max,elem:longint;
f,g:text;
u:ref;
gasit:boolean;
bufin,bufout:array[0..1000005] of byte;
const fi=(sqrt(5)-1)/2;
begin
assign(f,'elmaj.in');
assign(g,'elmaj.out');
reset(f);rewrite(g);
settextbuf(f,bufin);
settextbuf(g,bufout);
readln(f,n);
for i:=1 to n do
begin
read(f,v);
poz:=trunc((v*fi-trunc(v*fi))*n)+1;
u:=hash[poz];
gasit:=false;
while u<>nil do
begin
if u^.val=v then
begin
gasit:=true;
break;
end;
u:=u^.adr;
end;
if gasit then
begin
inc(u^.nr);
if u^.nr>max then
begin
elem:=v;
max:=u^.nr;
end;
end
else
begin
new(u);
u^.val:=v;
u^.nr:=1;
u^.adr:=hash[poz];
hash[poz]:=u;
end;
end;
if max>=n div 2+1 then
writeln(g,elem,' ',max)
else
writeln(g,-1);
close(f);close(g);
end.