この問題は一種の構築問題です。
, , の値を探索する方法では、時間内に答えを出力する事は出来ません。
そこで、 と一致する値が である場合について、以下の2つが成り立ちます。
これは と一致する値が である場合も同様です。
以上の事から、 と仮定し、 の関係式を立式します。
となり、式変形をすると以下のようになります。
しかし が奇数の場合については、 ともに整数となりますが、 が偶数の場合については整数となりません。
そこで同様に を仮定します。
となり、 が偶数の時 は整数となります。
以上から、 の偶奇によって処理を分ける事で で答えを求める事が出来ます。
ただし、この問題には重要なコーナーケースが存在します。
の場合について考えましょう。
に関して、上記の式で計算すると となってしまいます。これは正整数という条件を満たしておらず、他の値でも条件を満たす事は出来ません。よって を出力します
に関して、上記の式で計算すると となります。 である事から、答えは の順に出力する必要があります。
C++での実装例は以下の通りです。