if文で配列にTrueを入れたいです。

circle_lists =[[0,10,30],[5,-10,30],[100,10,20]]
overlap_list = [False] * len(circle_lists)

def calc(array):
 for i in range(len(array)):
  for j in range(i + 1, len(array)):
   if (array[0][i] - array[0][j]) ** 2 + (array[1][i] - array[1][j]) ** 2 < (array[2][i] + array[2][j]) ** 2:
       overlap_list[i] = True
       overlap_list[j] = True


calc(circle_lists)
print(overlap_list)

このコードを実行すると、
[True, True, True]
と出力されました。

if (array[0][i] - array[0][j]) ** 2 + (array[1][i] - array[1][j]) ** 2 < (array[2][i] + array[2][j]) ** 2:

の条件式が満たされるのは[0,10,30],[5,-10,30]の時のみです。
なので、[True, True, False]と出力させたいです。

[[0,10,30],[5,-10,30],[100,10,20]] のインデックスは[False, False, False]のインデックスと一致しています。なのでそのような出力にさせたいです。
circle_lists の要素数が多くなることを踏まえ、後半の要素は見なくても済むようにしたいです。なので2重for文で[False, False, False]をTrueに変えたいです。
なにが間違っているのでしょうか?