yukicoder #358: も~っと!門松列
yukicoderの結果を書こうとしてふと気付いたれど、コンテスト参加ごとにブログ記事をまとめる必要って無いですね(解けない問題の処理とか確かに困ってたし)。
今後は問題ごとに記事をわけて書いていきたいと思う。
考えたこと
が与えられた時に が門松列となるようなpの個数を求める問題。
pがよりも大きくなると任意のpでになるため、これが門松列である場合は解は無限個。
逆に言えばそうでない場合はpが以下であるケースを数え上げれば良い。
コード
プロコンで初めてラムダ式使いました。
門松列判定行列は関数化すれば良かったと書いてから後悔しました。
A=map(int,raw_input().split()) MA= max(A) if A[0]==A[1] or A[1]==A[2] or A[0]==A[2]: print 0 elif A[0]<A[1] and A[1]>A[2]: print "INF" elif A[0]>A[1] and A[1]<A[2]: print "INF" else: ans=0 for i in range(1,MA+1): B=map(lambda x:x%i,A) if B[0]==B[1] or B[1]==B[2] or B[0]==B[2]: continue if B[0]<B[1] and B[1]>B[2]: ans+=1 elif B[0]>B[1] and B[1]<B[2]: ans+=1 print ans