Pagini recente » Cod sursa (job #1793191) | Cod sursa (job #413035) | Cod sursa (job #868099) | Cod sursa (job #1236586) | Cod sursa (job #788716)
Cod sursa(job #788716)
#include <cstdio>
#include <cstring>
#define Mod 666013
typedef long long ll;
ll u[2][2]={{0,1},{1,1}},f[2][2]={{0,1},{1,1}},n;
void prod(ll x[2][2])
{
ll a[2][2];
memset(a,0,sizeof(a));
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
for(int k=0;k<2;k++)
a[i][j]=(a[i][j]+(f[i][k]*x[k][j])%Mod)%Mod;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)f[i][j]=a[i][j];
}
int pow(int n)
{
if(n>1)
{
pow(n/2);
if(n%2)
{
prod(f);
prod(u);
} else
prod(f);
}
}
int main()
{
freopen("kfib.in","r",stdin);
freopen("kfib.out","w",stdout);
scanf("%d",&n);
pow(n+1);
printf("%d\n",f[0][0]);
// for(int i=0;i<2;i++)
// {for(int j=0;j<2;j++)printf("%lld ",f[i][j]);printf("\n");}
return 0;
}