Pagini recente » Cod sursa (job #1975366) | Cod sursa (job #2888709) | Cod sursa (job #216370) | Cod sursa (job #1553426) | Cod sursa (job #2722535)
#include <fstream>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
typedef long long ll;
ll a[3][3],z[3][3],mnul[3][3];
int n, MOD = 666013;
void inm(ll a[3][3],ll b[3][3])
{
ll c[3][3];
int i,j,k;
for(i=0; i<=1; i++)
{
for(j=0; j<=1; j++)
{
c[i][j]=0;
for(k=0; k<=1; k++)
c[i][j]+=a[i][k]*b[k][j];
c[i][j]=c[i][j]%MOD;
}
}
for(i=0; i<=1; i++)
for(j=0; j<=1; j++) a[i][j]=c[i][j];
}
void lgp(ll mnul[3][3], int n)
{
while(n)
{
if(n%2==1)
{
inm(mnul,z);
n--;
}
else
{
inm(z,z);
n/=2;
}
}
}
int main()
{
fin>>n;
a[0][1]=1;
z[0][1]=z[1][0]=z[1][1]=1;
mnul[0][0]=mnul[1][1]=1;
lgp(mnul,n);
inm(a,mnul);
fout<<a[0][0];
return 0;
}