Pagini recente » Cod sursa (job #1042150) | Cod sursa (job #2402857) | Cod sursa (job #1789481) | Cod sursa (job #393458) | Cod sursa (job #2999451)
#include<iostream>
#include<fstream>
#define MOD 666013
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
long long v[3][3],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];
}