Pagini recente » Cod sursa (job #2637356) | Cod sursa (job #1087008) | Cod sursa (job #2585549) | Cod sursa (job #1724032) | Cod sursa (job #630028)
Cod sursa(job #630028)
#include <cstdio>
#include <cstring>
#define file_in "kfib.in"
#define file_out "kfib.out"
#define mod 666013
int N,z[2][2],sol[2][2];
void mul(int a[2][2], int b[2][2]){
int i,j,k;
int c[2][2];
memset(c,0,sizeof(c));
for (i=0;i<2;++i)
for (j=0;j<2;++j)
for (k=0;k<2;++k)
c[i][j]=(1LL*c[i][j]+1LL*a[i][k]*b[k][j])%mod;
memcpy(a,c,sizeof(c));
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &N);
N--;
sol[0][0]=1;
z[0][0]=1;
z[1][1]=0;
z[1][0]=1;
z[0][1]=1;
while(N){
if (N%2)
mul(sol,z);
mul(z,z);
N/=2;
}
printf("%d\n", sol[0][0]);
return 0;
}