Topcoder SRM 567 TheSquareRootDilemma
本番のときは、かんがえていた方法がそもそも間違っていた。
A = i*i*k,B=i*i*jを考えればよかった。
重複がこわいので、Setにつっこむ。
class TheSquareRootDilemma { public: int countPairs(int Ns, int Ms) { set<pair<int,int> > S; for(int i=1;i<=max(Ns,Ms);i++){ for(int j=1;i*j*j <= Ns;j++){ for(int k=1;i*k*k <= Ms;k++){ S.insert(mp(i*j*j,i*k*k)); } } } return S.size(); } }