AtCoder Beginner Contest 103

A - Task Scheduling Problem

例をつくって、列挙した。

昇順か降順にソートして計算すればうまくいくような気がする。

ミソは(おそらく)要素 ai 間の差をなくすこと。

B - String Rotation

popしてinsertで付け替えて回した。

入力:str -> list -> strという変換をしたが、listからstrにするのにjoinを使わなければいけないことに手間取った。str(list:s)でいけると思ってた。

 

C -  Modulo Summation

とりあえず a = [1,2,3] で m = 6で一周期っぽかったので、a = [2,3,5] でもう一例作ってみた。m=30まで作った。そしたらm=29で最大値が来てて、a = [1,2,3]のほうでも m=5 で最大値がきてたので、f(lcm(a)-1)で通った。

 

蛇足だが素直に公式の例を使えば m=10まででよかった。

あとlcmの実装にmath.gcdを使おうとしたが、REが出てうーんうーん?言ってた。理由はmath.gcdは Python3.5 からで、それ以前はfraction.gcdのためであった。

functools.reduceというメチャいいものの存在を知った。

 

D -  Islands War

時間切れで見ていない。まあまだいいかな。