Pagini recente » Cod sursa (job #2640675) | Cod sursa (job #2874912) | Cod sursa (job #945441) | Cod sursa (job #2659376) | Cod sursa (job #1822070)
#include <iostream>
#include <fstream>
#include <cstring>
#define MOD 666013
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
int N[3][3];
int Z[3][3];
int K;
void mult(int A[3][3], int B[3][3])
{
int C[3][3];
memset(C,0,sizeof(C));
for(int i=1;i<=2;++i)
{
for(int j=1;j<=2;++j)
{
long long s=0;
for(int k=1;k<=2;k++)
{
s+=1LL*A[i][k]*B[k][j];
}
C[i][j]=s%MOD;
}
}
memcpy(A,C,sizeof(C));
}
void read()
{
fin>>K;
}
void solve()
{
N[1][2]=Z[1][2]=Z[2][1]=Z[2][2]=1;
while(K)
{
if(K&1)
{
mult(N,Z);
}
K=K>>1;
mult(Z,Z);
}
}
void print()
{
fout<<N[1][1]<<"\n";
}
int main()
{
read();
solve();
print();
return 0;
}