Pagini recente » Cod sursa (job #1737428) | Cod sursa (job #794899) | Cod sursa (job #3036569) | Cod sursa (job #2473938) | Cod sursa (job #2839900)
#include <fstream>
using namespace std;
ifstream in("kfib.in");
ofstream out("kfib.out");
long long a[11][11],c[11][11],n,ras[11][11];
void afis()
{
for (long long i=1;i<=2;++i)
for (long long j=1;j<=2;++j)
out<<a[i][j]<<" ";
out<<'\n';
}
void mul(long long a[11][11],long long b[11][11])
{
for (long long i=1;i<=2;++i)
for (long long j=1;j<=2;++j)
c[i][j]=0;
for (long long i=1;i<=2;++i)
for (long long j=1;j<=2;++j)
for (long long k=1;k<=2;++k)
{
c[i][j]+=a[i][k]*b[k][j];
}
for (long long i=1;i<=2;++i)
for (long long j=1;j<=2;++j)
a[i][j]=c[i][j]%666013;
}
void po(long long n)
{
while (n)
{
if (n%2==0) {n/=2; mul(a,a);}
else {n--; mul(ras,a);}
}
}
int main()
{
in>>n;
a[1][2]=a[2][1]=a[2][2]=1;
ras[1][1]=ras[2][2]=1;
po(n);
out<<ras[2][1];
return 0;
}