solving競技プログラミングが主な話題です。この広告は、90日以上更新していないブログに表示しています。AnticubeAtCoder概ね解説と方法は同じですが、自分の方法は少しアプローチが違うので書くことにしました。この中から出来る限り多くの整数を選んで、どの2つの要素の積も立方数にならないようにしたい。最大何個まで選べるか。立方数になるという性質を考えます。同時に選べないことがわかります。ここで、数列の各要素を3乗数で割り切れなくなるまで割ることを考えます。同時に選べない数字は一つしか存在しません。一意に定まるからです。一意に定めることができ、この2つの整数はペアとして考えることができます。2以上の数字はかならずそれ自身と異なるペアを持ちますが、1のペアは1なので、特別に処理する必要があります。3乗数で割った数列のなかで同じ数字はひとまとめにして個数で管理することにすると、次の方針で答えを出すことができます。ペアのときは、個数が多い方を選び、答えに加算する。特例として、数列に1が存在するときは、他のどの1ともペアを作ってしまうので、答えに加算するのは1である。)の3乗で割ると間に合います。(素数→整数としてしまうと、TLEします)次に、各要素のペアを求める部分です。