Cod sursa(job #1690549)
Utilizator | Data | 15 aprilie 2016 11:33:35 | |
---|---|---|---|
Problema | Al k-lea termen Fibonacci | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.38 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
#define mod 666013
long long n;
map<long long,long long > fib;
long long f(long long x){
if(fib.count(x)) return fib[x];
return fib[x]=(f((x+1)/2)*f(x/2)+f((x-1)/2)*f((x-2)/2))%mod;
}
int main()
{
fin>>n;
fib[0]=fib[1]=1;
fout<<f(n-1)<<"\n";
return 0;
}