Cod sursa(job #2133898)
Utilizator | Data | 17 februarie 2018 13:57:01 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 0 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 1.72 kb |
uses crt;
type rep=record
numb:int64;
count:longint;
end;
var a:array[1..1000000] of rep; i,j,n:longint; aux:rep; fi,fo:text;
begin assign(fi,'elmaj.in'); reset(Fi);
assign(fo,'elmaj.out'); rewrite(fo);
read(fi,n);
i:=1;
while i<=n do begin
read(fi,A[i].numb);
a[i].count:=1;
inc(i);
end;
i:=1;
while i<n do begin
j:=i+1;
while j<=n do begin
if a[i].numb>a[j].numb then begin
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
end;
inc(j);
end;
inc(i);
end;
i:=1;
while i<=n do begin
j:=i+1;
while (j<n) and (a[j].numb=a[j+1].numb) do inc(j);
a[i].count:=a[i].count+j-i;
if a[i].count>n div 2 then begin
writeln(fo,a[i].numb,n div 2);
break;
end
else i:=i+j;
end;
if i=n then writeln(fo,-1);
close(Fi); close(Fo);
end.