Răspuns:
program majoritar;
const nmax=100;
type sir=array[1..nmax] of integer;
var A,B:sir;
n,i,j,k, el, gasit, apmax:integer;
begin
write('n='); read(n);
writeln('introdu elementele sirului, cu spatiu intre ele');
read(A[1]); B[1]:=1; k:=1;
for i:=2 to n do
begin
read(el);
gasit:=0;
for j:=1 to k do
begin
if (A[j]=el) then
begin gasit:=1; inc(B[j]); break; end;
end;
if gasit=0 then begin inc(k); A[k]:=el; B[k]:=1; end;
end;
apmax:=B[1]; j:=1;
for i:=2 to k do
begin
if B[i]>apmax then begin apmax:=B[i]; j:=i; end;
end;
if apmax > n div 2
then writeln(A[j],' este majoritar')
else writeln('nu exista majoritar...');
end.
Explicație:
memorizez in vectorul A numai elementele disticte din sirul introdus, iar in vectorul B memorizez aparitiile elementelor din A.