Cod sursa(job #214596)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 15 octombrie 2008 11:21:46
Problema Numarare triunghiuri Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.87 kb
const NMAX=30002;
var n,i,j,k,t:longint;
    v:array[0..801] of longint;
    f,g:text;
    sol:int64;
function search(tt:integer;x:longint):integer;
var ls,ld,mij,r:integer;
begin
ls:=tt;ld:=n;
while ls<=ld do
 begin
 mij:=(ls+ld)div 2;
 if (v[mij]<=x) then begin
                r:=mij;
                ls:=mij+1;
                end
          else ld:=mij-1;
 end;
 search:=r;
end;
begin
 assign(f,'nrtri.in');reset(f);
 assign(g,'nrtri.out');rewrite(g);
 readln(f,n);
 for i:=1 to n do
  read(f,v[i]);
 for i:=1 to n do
  for j:=i+1 to n do
   if (v[i]>v[j]) then
    begin
    k:=v[i];
    v[i]:=v[j];
    v[j]:=k;
    end;
 sol:=0;
 for i:=1 to n-2 do
  for j:=i+1 to n-1 do
   begin
   k:=v[i]+v[j];
   if (k>=v[j+1]) then begin
   t:=search(j+1,k);
   sol:=sol+(t-j);
                 end;
  end;
 write(g,sol);
 close(f);close(g);
end.