Pagini recente » Cod sursa (job #262361) | Cod sursa (job #2312923) | Cod sursa (job #1987887) | Cod sursa (job #867644) | Cod sursa (job #2999450)
#include<iostream>
#include<fstream>
#define MOD 666013
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
long long v[2][2],m[3][3];
int main()
{
v[1][1] = 0;
v[1][2] = 1;
m[1][2] = 1;
m[2][1] = 1;
m[2][2] = 1;
long long n;
f>>n;
while(n)
{
long long c[3][3];
if(n % 2 == 1)
{
for(int i=1;i<=2;i++)
{
for(int j=1;j<=2;j++)
{
c[i][j] = 0;
for(int k=1;k<=2;k++)
{
c[i][j] += v[i][k] * m[k][j];
}
c[i][j] %= MOD;
}
}
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
v[i][j] = c[i][j];
}
for(int i=1;i<=2;i++)
{
for(int j=1;j<=2;j++)
{
c[i][j] = 0;
for(int k=1;k<=2;k++)
{
c[i][j] += m[i][k] * m[k][j];
}
c[i][j] %= MOD;
}
}
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
m[i][j] = c[i][j];
n=n/2;
}
g<<v[1][1];
}