Cod sursa(job #1347295)

Utilizator laura.calimanLaura Caliman laura.caliman Data 18 februarie 2015 21:33:48
Problema Elementul majoritar Scor 10
Compilator fpc Status done
Runda Arhiva educationala Marime 0.99 kb
var n,i,j,k,m,t:longint;
    a:array[1..1000000] of longint;
    
procedure sw(var a,b:longint);
var c:longint;
begin
  c:=a;
  a:=b;
  b:=c;
end;
  
procedure sort(st,dr:longint);
var i,j,p:longint;
begin
  i:=st;
  j:=dr;
  p:=a[(i+j) div 2];
  while i<j do begin
    while a[i]<p do inc(i);
    while a[j]>p do dec(j);
    if i<=j then begin
      sw(a[i],a[j]);
      inc(i);
      dec(j);
    end;
    if i<dr then sort(i,dr);
    if st<j then sort(st,j);
  end;
end;
  
begin
  assign(input,'elmaj.in');
  assign(output,'elmaj.out');
  reset(input);
  rewrite(output);
  read(n);
  for i:=1 to n do read(a[i]);
  sort(1,n);
  j:=1;
  t:=n div 2 + 1;
  for i:=2 to n do begin
    if a[i]=a[i-1] then inc(j)
    else begin
      if (j>k) and (j>=t) then begin
        k:=j;
        m:=a[i-1]
      end;
      if i<n then j:=1;
    end;
  end;
  if (a[n]=a[n-1]) and (j>k) and (j>=t) then begin
        k:=j;
        m:=a[n-1]
      end;
  write(m,' ',k);
end.