Pagini recente » Cod sursa (job #2217148) | Produse2 | Cod sursa (job #1498298) | Cod sursa (job #549727) | Cod sursa (job #2303135)
#include <fstream>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
int a[3][3],b[3][3],c[3][3],i,j,x,y,k;
void inm(int x[3][3],int y[3][3],int s[3][3])
{
for (int i=1;i<=2;i++)
for (int j=1;j<=2;j++)
for (int k=1;k<=2;k++)
s[i][j]=(s[i][j]+1LL*x[i][k]*y[k][j])%666013;
for (i=1;i<=2;i++)
for (j=1;j<=2;j++)
a[i][j]=s[i][j];
}
void put(int k)
{
int b[3][3];
for (i=1;i<=2;i++)
for (j=1;j<=2;j++)
b[i][j]=a[i][j];
if (k<2) return;
put(k/2);
inm(a,a,c);
for (i=1;i<=2;i++)
for (j=1;j<=2;j++)
c[i][j]=0;
if (k%2==1)
inm(a,b,c);
for (i=1;i<=2;i++)
for (j=1;j<=2;j++)
c[i][j]=0;
}
int main()
{
fin>>k;
a[2][1]=1; a[2][2]=1; a[1][2]=1;
put(k-1);
fout<<a[2][2];
return 0;
}