略譯

原題目連結

給你三個整數 A, B, C 且 1 <= A, B, C <= 10000
求是否存在三個相異整數 x, y, z 滿足
x + y + z = A
xyz = B
xx + yy + z*z = C
若同時有多組滿足,輸出 x 最小的一組;若仍有多組滿足,輸出 y 最小的一組

題解

按照題意暴搜即可。

由 A 可在決定 x, y, z 中任意 2 個後,直接確定剩下那一個的值
由 B >= 1 可知 x, y, z 不可為 0
由 C 可知 x*x, y*y, z*z < 10000 => x, y, z < 100,因此可以暴搜

由於 x 要盡量小,從最小開始,枚舉所有可能的 x, y
得出 z = A-x-y,再檢查是否符合要求即可

實作提示

  • 注意 x, y, z 必須互不相等
  • 注意 x, y, z 可以為負整數,即使 A, B, C 恆正