バター泥棒は,自分が盗むことができるバターのうち美味しさが最も大きいものを盗む代わりに,盗むことができるバターをすべて盗むことにします.
こうすることで,バター泥棒が盗むバターの番号の代わりに,盗むバターの個数を考えれば良いことになります.
(例:レベル のバター泥棒は 番目の美味しさ のバターを盗む → レベル のバター泥棒は美味しさ のバター計 個を盗む)
を以下のように定義すると,答えは です.ただし, とします.
を求めましょう.「各バター泥棒はどのバターを盗むか」という見方を変えて「各バターはどのバター泥棒に盗まれるか」を考えると,
ということが分かります.よって,
が成り立ちます. であることから, を計算する時には の範囲のみを考えれば十分です.
xxxxxxxxxx
F = [1]*78
for i in range(2,78):
F[i] = F[i-1] + F[i-2]
def f(X):
ans = 0
for i in range(1,78):
ans += max(0, X-F[i]+1)
return ans
L,R = map(int,input().split())
print(f(R)-f(L-1))