Cod sursa(job #1690577)
Utilizator | Data | 15 aprilie 2016 11:58:25 | |
---|---|---|---|
Problema | Al k-lea termen Fibonacci | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.34 kb |
#include<fstream>
#include<map>
using namespace std;
ifstream cin("kfib.in");
ofstream cout("kfib.out");
long long n,m=666013;
map <int,int> f;
long long rec(long n){
if(f[n]!=0)return f[n];
else return f[n]=(rec((n+1)/2)*rec(n/2)+rec((n-1)/2)*rec((n-2)/2))%m;
}
int main(){
cin>>n;
f[1]=1;f[0]=1;
cout<<rec(n-1);
}