Python3ではTLEなのにPyPy3だと通った話

atcoder.jp

アルゴリズムと数学』の4.1-2の演習問題でそれは起きました
「034 - Nearest Points」

注意
文中のPythonは処理系のCPythonのことを指しています
言語のPythonを指す際は、Python言語と記載しています


問題の起きたコード

N = int(input())
X,Y = [None]*N,[None]*N
for i in range(N):
    X[i],Y[i] = map(int,input().split())
    
Answer = 10**6
for i in range(N-1):
    for j in range(i+1,N):
        Answer = min(Answer, ((X[i]-X[j])**2 + (Y[i]-Y[j])**2)**0.5)

print(Answer)


演習問題の制約にO(N2)まではOK!と書いてあるのに、
何度提出してもTLE,TLE,,,TLEって何が違うのか全く分からないまま仕方なく、
他の方のACコードを拝見しても、自分のコードと計算量が同じものも多々あり尚更困惑

PythonでTLEのコードがPyPyだと通ることもあるという、以前どこかで見た記事を思い出し、
PyPyで提出したらお見事ACで無事通過!!

Nが106以上からPyPyのほうが実行時間が短くなり、Nが増えるにつれてその違いも顕著になっています
ただし、105以下の時は僕が調べた限りPyPyよりPythonのほうが実行時間が短かったです
※ 調査方法が単純なものなため、間違っていたら大変申し訳ないです
https://atcoder.jp/contests/math-and-algorithm/custom_test ← ここでfor文使って試した

注意
PyPyでWAなのに、PythonだとACで通ったりということもあるらしいので、
競技プログラミングPython言語を使う方は過去問などで経験を積んで使い分けが必要かも
※ コンテスト中はWA取るとペナルティがあるため