文字列の長さが最大で10なので、前から順番に3文字ずつ選んで整数に変換し、753との差の絶対値をとっていき、その最小値を解とすればよいです。online.atcoder.jp解法300点にしては意外と難しかったです。Nは最大で999999999なので、全ての整数をチェックしていくのは現実的では無いです。3のみからなる数字がどれくらいあるか考えます。この場合、39なので19,683個しかありません。3がそれぞれ1回以上現れる必要があるので、これより少なくなります)よって、全ての七五三数を探索してN以下のものを数え上げればよいです。3がそれぞれ1回以上」というのがちょっと面倒です。3からなる整数を作っておき、後で各数字が1回以上あるかどうかを判定しています。七五数の条件である、「約数をちょうど75個持つ正の整数」について最初に考えます。これは素因数分解すると以下の形で表すことができます。p4q4r2そこで、N!の素因数分解を行い、N!の約数のうち上記のパターンで表せるものを数えていきます。N!の素因数分解は、1〜Nをそれぞれ素因数分解し、各指数部分を加算していけば求めることが出来ます。実装Rubyのpermutationメソッドを使って組み合わせを列挙し、計算結果がN!の約数かどうかをチェックして数え上げていきます。与えられた非負整数Nについて、N×1,N×2,...とNの倍数をあげていく。入力に対応する塩基を出力するだけ。bi)の組み合わせについて、a→bの順番でソートします。参戦記ABCやARCと違うコンテストに参加するのは今回が初でした。KLabさん主催とのことですが、ほぼいつもの問題の感じと同じでしたね。bpがX以下になる組み合わせについて考えます。久しぶりにリアルタイムで参戦できたので結果のまとめです。長さNの数列の切れ目はN-1通りあるため、3つの切れ目を選ぶ組み合わせはn-1C3通りあります。コメントをキャンセルメールアドレスが公開されることはありません。