Cod sursa(job #2133898)

Utilizator ctrohinCristina Trohin ctrohin 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.