По координатам отрезков вы можете определить их длину. А зная длину каждого из отрезком можно найти наиболее длинный, а это как я уже говорил задача на поиск максимума:
Код:
program Project12;
{$APPTYPE CONSOLE}
uses
SysUtils;
Const
Count = 100;
Type
TColor = (White, Black);
Var
i,Max: Integer;
Coords: Array[1..Count] of record X1,X2: Integer; Color: TColor; end;
begin
Randomize;
for i := 1 to Count
do begin
if i = 1
then Coords[i].X1 := Random(1000)
else Coords[i].X1 := Coords[i-1].X2 + Random(1000);
Coords[i].X2 := Coords[i].X1 + Random(1000);
Coords[i].Color := TColor(Random(2));
WriteLn(Coords[i].X2 - Coords[i].X1:10,Ord(Coords[i].Color):2);
end;
for i := 1 to Count
do if Coords[i].Color = White
then begin
Max := i;
Break;
end;
for i := Max to Count
do if (Coords[i].Color = White) and ((Coords[i].X2 - Coords[i].X1) > (Coords[Max].X2 - Coords[Max].X1))
then Max := i;
WriteLn;
WriteLn(Coords[Max].X1,Coords[Max].X2:10,Coords[Max].X2 - Coords[Max].X1:10,Ord(Coords[Max].Color):2);
ReadLn;
end.