SRM 163 DIV2 Level One - シャクトリムシのお食事

英語で泣きそうになるな。


シャクトリムシは結構面白い動きをして、シャクトリムシ - Wikipediaこんなん。

日本語で尺取虫、英語でinchwormと言う位なので、長さを計る虫。という意味は変わらないらしい。


枝に等間隔に葉っぱが付いてる。シャクトリムシも等間隔でしか移動できない。

~   ~   ~   ~   ~   ~ ← シャクトリムシ
+----+----+----+----+--
葉   葉   葉   葉   葉

さて、シャクトリムシは何枚の葉っぱを食べられるでしょうか。という問題。


と、ここまで理解するまでが死にそう。


回答は簡単で、必ず0で一回食べられるので、一回足しといて、lcm取ればいい。入力は1以上なのでゼロ除算は見る必要なし。

int gcd(int a,int b) { return (b == 0) ? a : gcd(b, a % b); }
int lcm(int a, int b) { return a * b / gcd(a, b); }

class Inchworm
{
public:
    static int lunchtime(int branch, int rest, int leaf)
    {
        return 1 + branch / lcm(rest, leaf);
    }
};

英語修行じゃ。

英語メモ

  • inchworm
  • inch (動)
    • 少しづつ動く、徐々に進む
  • habit
    • 習慣、習性
  • make a meal of
    • 〜を食べる。