Cod sursa(job #61095)

Utilizator radu_voroneanuVoroneanu Radu Stefan radu_voroneanu Data 18 mai 2007 12:24:40
Problema Medie Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.82 kb
var a:array[1..7000] of integer;
    b:array[0..9000] of integer;
    f,g:text;
    n,max,i,j,nr,nr2:longint;
procedure citesc;
 var x:longint;
 begin
  assign(f,'medie.in'); reset(f);
  read(f,n);
  for i:=1 to n do begin
   read(f,x);
   if max<x then
    max:=x;
   inc(b[x]);
  end;
  close(f);
 end;

procedure aflu;
 begin
  n:=0;
  for i:=0 to max do
   for j:=1 to b[i] do begin
    inc(n);
    a[n]:=i;
   end;
 end;

begin
 assign(g,'medie.out'); rewrite(g);
 citesc;
 aflu;
 nr:=0;
 for i:=1 to max do begin
  nr2:=0;
  if b[i]>=3 then
   for j:=1 to b[i]-3+1 do
    inc(nr2,(j*(j+1)) shr 1);
  inc(nr,nr2*(b[i]-3+1));
  if b[i]<>0 then
   for j:=i+2 to max do
    if (b[j]<>0) and ((i+j) and 1=0) then
     inc(nr,b[i]*b[j]*b[(i+j) shr 1]);
 end;
 writeln(g,nr);
 close(g);
end.