http://codeforces.com/contest/1029/problem/F
この質問は、すべてでは本当に難しいことではありません............................................................
、bは任意のものであり、矩形になることが最初は大きな矩形に配置することができるまで、大矩形領域A + Bの、最小ギャップ因子から横断(矩形領域があるため、最後の大であります+ bに等しくなければなりません、私たちが理解を見つける。)残りのスペースを埋めることができるようになります。
1 輸入 java.utilの。* ; 2 3 パブリック クラスA { 4 パブリック 静的 ボイドメイン(文字列[]引数){ 5 スキャナーIO = 新しいスキャナ(System.in)。 6 長い = io.nextLong()、B = io.nextLong()、C = A + B。 7 長い分= 0、最大= 0 。 8 9 ための(長い I =(長い)Math.sqrt(C)、I> = 1; i-- ){ 10 であれば(Cの%I == 0 ){ 11 分= I。 12である 最大= C / I、 13れる 14 // 二つの要因は、ギャップ長を成長させる場合には倍増分よりも大きい最大、タイムアウト適切に起因し、最大で 15 のための(ロング J =分; J> = 1。 J、){ 16 IF(== 0 && J%でのA / J <=最大||%のB == 0 && J B / J <= MAX){ 17 のSystem.out.println((最大値+最小) 2 * ); 18で 返す; 19 } 20 } 21れる } 22である } 23である 24 } 25 }