Cod sursa(job #2776281)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 19 septembrie 2021 10:23:08
Problema Al k-lea termen Fibonacci Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.44 kb
#include<fstream>
using namespace std;
ifstream F("kfib.in");
ofstream G("kfib.out");
#define N 666013
#define A(a,b,c,d) (((1LL*a*b)%N+(1LL*c*d)%N)%N)
int n,e,f,g,h,u,v,w,z,p,q,r,s,i;
int main()
{
    F>>n,e=h=v=w=z=1;
    for(i=0;(1<<i)<n;++i,p=A(u,u,v,w),q=A(u,v,v,z),r=A(w,u,z,w),s=A(w,v,z,z),u=p,v=q,w=r,z=s)
        if((n-1)&(1<<i))
            p=A(e,u,f,w),q=A(e,v,f,z),r=A(g,u,h,w),s=A(g,v,h,z),e=p,f=q,g=r,h=s;
    G<<h;
    return 0;
}