Pagini recente » Atasamentele paginii Profil PaunescuAlexia | Cod sursa (job #816074) | Cod sursa (job #2647913)
#include <iostream>
#include <fstream>
using namespace std;
ifstream be("kfib.in");
ofstream ki("kfib.out");
long long MOD=666013;
void szorz(int (&a)[3][3],int (&b)[3][3],int (&c)[3][3])
{
int sum=0;
for(int i=1;i<=2;i++)
{
for(int j=1;j<=2;j++)
{
for(int k=1;k<=2;k++)
sum+=(a[i][k]*b[k][j])%MOD;
c[i][j]=sum;
sum=0;
}
}
}
void masol(int (&a)[3][3],int (&b)[3][3])
{
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
b[i][j]=a[i][j];
}
int d[2][2],l[2][2];
int main()
{
int k;
be>>k;
int a[3][3],b[3][3],c[3][3];
a[1][1]=0;
a[1][2]=1;
a[2][1]=1;
a[2][2]=1;
masol(a,b);
for(int i=1;i<k;i++)
{
szorz(a,b,c);
masol(c,b);
}
d[1][1]=0;
d[1][2]=1;
for(int i = 1; i <=1 ; ++i)
for(int j = 1; j <=2; ++j)
for(int k = 1; k <= 2; ++k)
{
l[i][j] += (d[i][k] * c[k][j])%MOD;
}
ki<<l[1][1];
return 0;
}