Official

D - Tetrahedral Number Editorial by kyopro_friends


\(x+y+z\leq N\) であることから \(x,y,z \leq N\) の範囲を調べれば十分です。組を辞書順で小さい方から求めるためには \(x,y,z\) の順に昇順にループすれば良いです。

実装例(Python)

N=int(input())

for x in range(N+1):
  for y in range(N+1):
    for z in range(N+1):
      if x+y+z<=N:
        print(x,y,z)

おまけ:
\(N=21\) のとき、条件を満たす組は \(\binom{21+3}{3}=2024\) 個あります。Happy New Year!

posted:
last update: