Submission details
Task:Rabbits
Sender:tjaa
Submission time:2025-11-26 18:19:39 +0200
Language:Python3 (PyPy3)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#2ACCEPTED0.04 sdetails
#3ACCEPTED0.04 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.04 sdetails
#6ACCEPTED0.04 sdetails
#7ACCEPTED0.04 sdetails
#8ACCEPTED0.04 sdetails
#9ACCEPTED0.04 sdetails
#10ACCEPTED0.04 sdetails
#11ACCEPTED0.04 sdetails
#12ACCEPTED0.04 sdetails
#13ACCEPTED0.04 sdetails
#14ACCEPTED0.04 sdetails
#15ACCEPTED0.04 sdetails
#16ACCEPTED0.04 sdetails
#17ACCEPTED0.04 sdetails
#18ACCEPTED0.04 sdetails
#19ACCEPTED0.04 sdetails
#20ACCEPTED0.04 sdetails
#21ACCEPTED0.04 sdetails
#22ACCEPTED0.04 sdetails
#23ACCEPTED0.04 sdetails

Code

import sys

g = (1 + 5**.5) / 2
def fib(N):
    return int((g**N - (1-g)**N) / 5**.5)

MAXN = 481

read = sys.stdin.readline
a, b = map(int, read().split())

def losearch(lo: int, hi: int):
    # print(f"{lo} {hi}")
    if(lo == hi):
        return int(lo)

    len: int = hi-lo    
    mid: int = lo + len//2

    f = fib(mid)

    if (f < a):
        return losearch(mid+1, hi)
    else:
        return losearch(lo, mid)

def hisearch(lo: int, hi: int):
    if(lo == hi):
        return int(lo)

    len: int = hi-lo
    mid: int = lo + len//2

    f = fib(mid)

    if (f < a or f <= b):
        return hisearch(mid+1, hi)
    else:
        return hisearch(lo, mid)

print(hisearch(1, MAXN) - losearch(1, MAXN))

Test details

Test 1

Verdict: ACCEPTED

input
1 1000000000000000000000000000...

correct output
480

user output
480

Test 2

Verdict: ACCEPTED

input
1 1

correct output
2

user output
2

Test 3

Verdict: ACCEPTED

input
100000000000000000000000000000...

correct output
0

user output
0

Test 4

Verdict: ACCEPTED

input
708610693340620844512521044951...

correct output
0

user output
0

Test 5

Verdict: ACCEPTED

input
786632967217302919379405189471...

correct output
0

user output
0

Test 6

Verdict: ACCEPTED

input
636957196297222930779072940972...

correct output
0

user output
0

Test 7

Verdict: ACCEPTED

input
114612974378925787282507968062...

correct output
3

user output
3

Test 8

Verdict: ACCEPTED

input
702530369037899946705172780410...

correct output
0

user output
0

Test 9

Verdict: ACCEPTED

input
274453166590443997807512962944...

correct output
0

user output
0

Test 10

Verdict: ACCEPTED

input
855307457139726034048493902602...

correct output
0

user output
0

Test 11

Verdict: ACCEPTED

input
639748223313530085297872188565...

correct output
0

user output
0

Test 12

Verdict: ACCEPTED

input
432993801671766821076571962007...

correct output
1

user output
1

Test 13

Verdict: ACCEPTED

input
879671727283213079665539196480...

correct output
1

user output
1

Test 14

Verdict: ACCEPTED

input
667785392416865594397610159182...

correct output
0

user output
0

Test 15

Verdict: ACCEPTED

input
781364162388340525444583784264...

correct output
1

user output
1

Test 16

Verdict: ACCEPTED

input
655747298541157143247235560738...

correct output
0

user output
0

Test 17

Verdict: ACCEPTED

input
403413620814634912261621439265...

correct output
0

user output
0

Test 18

Verdict: ACCEPTED

input
447646307232291168178477866864...

correct output
1

user output
1

Test 19

Verdict: ACCEPTED

input
295276605018840332007572176705...

correct output
5

user output
5

Test 20

Verdict: ACCEPTED

input
443559664146440701189824727251...

correct output
2

user output
2

Test 21

Verdict: ACCEPTED

input
734298173292503577661407215818...

correct output
0

user output
0

Test 22

Verdict: ACCEPTED

input
864568133527920094870111453259...

correct output
0

user output
0

Test 23

Verdict: ACCEPTED

input
352783378945989078522092015452...

correct output
0

user output
0