FIB64  64bitFibonacci
Warning
This task is intended to help people to debug their codes and try speed experiments.
The task is the same as in some known problems, but with new constraints and speed goal.
The Fibonacci sequence is defined for any positive integer by :
If N<2: Fib(N)=N, else Fib(N)=Fib(N1)+Fib(N2)
You have the task of being the fastest to compute Fib(N) mod M.
Input
The input consists of 500,000 lines.
In each the 500,000 lines there are two integers N, M.
You don't need to read the whole input, only some lines to get some points.
You should begin with one line, then 10, then 100, ...
Output
For as many test cases you can, on a single line, print Fib(N) mod M.
Example
Input: 5 4 5 5 5 6 [...] Output: 1 0 5
Constraints
0 <= N <= 10^18 2 <= M <= 10^18
Score
As in the example, if you can output the 3 first correct answers, your score will be 3 points. No need to solve all the input, the minimum is 1 ; every solver in any language will be able to check his FIB64speed.
hide comments
imadg:
20180331 12:57:22
Getting WA!


Curiosa:
20171016 13:21:29
@Francky, can this problem be solved with the approach I have right now? I mean just optimizing the constant. I have other ideas but I don't know if tehy're worth investing time in.


Michael Kharitonov:
20170214 02:29:30
What about rejudge? Can you upload more tests (with the same number of lines) for more accuracy? Maybe round score to whole number, it'll be more than enough.


Francky:
20170212 17:53:14
New MasterJudge : IF score == 500000 THEN score /= 0.01+yourTime/maxTime


Michael Kharitonov:
20170212 14:21:30
Latest C/C++ compilers update really sped up my solution.


Min_25:
20160818 17:21:06
The cube cluster has been migrated to a new server Intel(R) Xeon(R) CPU E31220 v5.


Min_25:
20160519 04:20:18
Note: We can complete the task without the inline assembler.


:.Mohib.::
20150704 15:50:51
@Francky can you please check my submission I think it's correct but WA here :(


the_new_kid:
20150615 13:54:18
@Francky I am getting accepted at 2890 and TLE at 2900. Can you please help me handle the 64 bit product problm? I am doing addition and bitwise operations to perform the addition and matrix exponentiation to get the Fibonacci. What am I missing? Isn't log(n) fast enough?


[Lakshman]:
20141210 16:02:11
I got the new Idea for this problem that works much faster for this problem.

Added by:  Francky 
Date:  20130120 
Time limit:  1s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ASM64 
Resource:  Own problem 