C - POW Editorial by kyopro_friends


\(pow(A,B)\) は非常に巨大な数のため、そのままでは計算することができません。直接計算せずに比較する方法を考えます。

まず \(pow(A,C)\) の符号を求めます。これは、\(A\) が負かつ \(C\) が奇数なら負で、それ以外なら非負です。

もし \(pow(A,C)\)\(pow(B,C)\) の符号が異なるなら、答えは明らかです。そうでない場合は、\(|pow(A,C)|=pow(|A|,C)\)であることと、\(0\leq x\leq y \Longrightarrow pow(x,z)\leq pow(y,z)\) を使うことで、\(|A|,|B|\) の大小関係から、答えを求めることができます。

解答例(C++)

posted:
last update: