Cod sursa(job #7044)

Utilizator marius21Petcu Marius marius21 Data 21 ianuarie 2007 12:06:12
Problema Patrate 3 Scor 0
Compilator fpc Status done
Runda preONI 2007, Runda 1, Clasa a 9-a si gimnaziu Marime 0.99 kb
type coord=record
x,y:longint
end;
var a:array[1..1000] of coord;
i,n,j:integer;
k,l,nrpat,max,min:integer;
difx,dify:longint;
xx,yy:real;
begin
read(n);
for i:=1 to n do begin
read(xx,yy);
a[i].x:=round(10000*xx);
a[i].y:=round(10000*yy);
end;
for i:=1 to n-3 do
for j:=i+1 to n do begin
difx:=a[i].x-a[j].x;
dify:=a[i].y-a[j].y;
for k:=1 to n do begin
if (a[k].x=a[j].x-dify) and (a[k].y=a[j].y+dify) then begin
for l:=1 to n do if (a[l].x-a[k].x=difx) and (a[l].y-a[k].y=dify) then begin
if k>l then begin
max:=k;
min:=l;
end
else begin
max:=l;
min:=k;
end;
if (max>j) and (min>i)then begin
nrpat:=nrpat+1;
break;
end;
end;
break;
end;
if (a[k].x=a[j].x+dify) and (a[k].y=a[j].y-dify) then begin
for l:=1 to n do if (a[l].x-a[k].x=difx) and (a[l].y-a[k].y=dify) then begin
if k>l then begin
max:=k;
min:=l;
end
else begin
max:=l;
min:=k;
end;
if (max>j) and (min>i)then begin
nrpat:=nrpat+1;
break;
end;
end;
break;
end;
end;
end;
writeln(nrpat);
end.